Javascript 是否有任何方法可以识别mongoose/mongoDB中的更新/升级?
实际上,我想知道在mongoose/mongoDB?中使用findOneAndUpdate()和upsert:true选项后,是否有任何方法可以识别更新的旧记录或添加的新记录 我正在使用Javascript 是否有任何方法可以识别mongoose/mongoDB中的更新/升级?,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,实际上,我想知道在mongoose/mongoDB?中使用findOneAndUpdate()和upsert:true选项后,是否有任何方法可以识别更新的旧记录或添加的新记录 我正在使用 // partial code var update = {$set:fieldsToSet}; var options = {new: true, upsert:true}; var created = yield User.findOneAndUpdate(fieldsQuery, up
// partial code
var update = {$set:fieldsToSet};
var options = {new: true, upsert:true};
var created = yield User.findOneAndUpdate(fieldsQuery, update, options).exec();
// here I want to check updated old record or create new record
在模式中使用内置的
时间戳
选项,以便可以检查createAt
字段
var User = new Schema({
...,
{
timestamps: true,
});
这将自动将createdAt
和updatedAt
字段添加到架构中
应用于您的代码
不能同时使用选项
{new:true,upsert:true}
,因为原子更新只返回带有该操作的修改过的文档;您可能需要执行单独的查询以返回未修改的文档,即var original=yield User.findOne(fieldsQuery.exec()代码>@chridam我同时使用和工作,但我的问题是,是否有任何方法可以识别更新的记录或创建的新记录。谢谢你的重播
const callTime = new Date();
User.findOneAndUpdate(...)
.then((ret) => {
// It just get created
if (ret.createAt.getTime() >= callTime.getTime()) {}
// It get modified
});