我问这个是因为当我编写单元测试时,我想删除测试数据库并插入一些初始化数据,并在测试中检查mongodb中的数据.所以我需要mongodb的原始操作.
如何在猫鼬中做到这一点?我现在能做的就是创建连接,而不是在mongoose的官方网站上找到任何文件.
var mongoose = require('mongoose');
mongoose.connect('mongo://localhost/shuzu_test');
// get the connection
var conn = mongoose.connection;
Run Code Online (Sandbox Code Playgroud)
但是如何:
我更新了Mongoose模型,然后使用$inc实现简单视图计数器的运算符检索:
const profile = await Profile.findOneAndUpdate({ userName }, { $inc: { viewsCount: 1 } });
Run Code Online (Sandbox Code Playgroud)
Profileschema已timestamps启用选项.问题是updatedAt在更新期间viewsCount更新,这不是理想的行为.
我想在updatedAt更新时禁用viewsCount更新,最好是尽可能少地进行查询.
我假设Mongoose时间戳是通过预挂钩实现的.
如何findOneAndUpdate增加viewsCount而不更新updatedAt?
可以通过否定时间戳挂钩的效果来完成吗?
有类似的问题可以解决updatedAt更新问题,但解决方案不适合这种情况.
我现在的情况是,我想更新 mongodb 中的集合文档,但我不希望更新“updatedAt”字段。我想保留更新字段的先前值。请帮忙。