Mongodb Mongoose update$setOnInsert更改updatedAt时间戳,即使没有更新发生
我有一个带有Mongodb Mongoose update$setOnInsert更改updatedAt时间戳,即使没有更新发生,mongodb,mongoose,Mongodb,Mongoose,我有一个带有时间戳:true参数的模式。我想插入文档,但前提是这些文档不存在。如果它们确实存在,则不应执行任何操作(noop) 所以我使用$setOnInsert参数如下 return Order.findByIdAndUpdate( order._id, { $setOnInsert: order }, { upsert: true, new: true
时间戳:true
参数的模式。我想插入文档,但前提是这些文档不存在。如果它们确实存在,则不应执行任何操作(noop)
所以我使用$setOnInsert参数如下
return Order.findByIdAndUpdate(
order._id,
{
$setOnInsert: order
},
{
upsert: true,
new: true
});
如果我理解正确,这应该只在文档不存在时插入文档,否则不执行更新
但是,每当我运行这个操作时,updatedAt时间戳都会被更新
我怎样才能防止这种情况?这是故意的行为还是我选择了错误的方法“仅在不存在时插入”
findOneAndUpdate
接受一个时间戳
选项(设置为false
)允许您跳过更新时间戳
例如:
return Order.findByIdAndUpdate(
order._id,
{
$setOnInsert: order
},
{
timestamps: false,
upsert: true,
new: true
}
);
您可以查看相关文档