实际上我想知道是否有任何方法来识别更新的旧记录或添加的新记录使用findOneAndUpdate()与upsert: true选项在mongoose/mongoDB后?
我使用
// 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
在模式中使用内置的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
});