Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有任何方法可以识别mongoose/mongoDB中的更新/升级?_Javascript_Node.js_Mongodb_Mongoose - Fatal编程技术网

Javascript 是否有任何方法可以识别mongoose/mongoDB中的更新/升级?

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

实际上,我想知道在mongoose/mongoDB?中使用findOneAndUpdate()和upsert:true选项后,是否有任何方法可以识别更新的旧记录或添加的新记录

我正在使用

// 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
 });