有没有办法在mongoose / mongoDB中识别更新/ upserted?

时间:2016-11-10 11:43:50

标签: javascript node.js mongodb mongoose

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

我正在使用

// 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

1 个答案:

答案 0 :(得分:1)

使用架构中的内置timestamps选项,以便检查createAt字段。

var User = new Schema({
  ...,
  {
    timestamps: true,
});

这会自动将createdAtupdatedAt字段添加到您的架构中。

应用于您的代码

const callTime = new Date();

User.findOneAndUpdate(...)
 .then((ret) => {
    // It just get created
    if (ret.createAt.getTime() >= callTime.getTime()) {}

    // It get modified
 });