实际上我想知道有什么方法可以在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
答案 0 :(得分:1)
使用架构中的内置timestamps
选项,以便检查createAt
字段。
var User = new Schema({
...,
{
timestamps: true,
});
这会自动将createdAt
和updatedAt
字段添加到您的架构中。
const callTime = new Date();
User.findOneAndUpdate(...)
.then((ret) => {
// It just get created
if (ret.createAt.getTime() >= callTime.getTime()) {}
// It get modified
});