【发布时间】:2018-03-04 00:39:09
【问题描述】:
我有一个带有timestamps: true 参数的架构。我想插入文档,但前提是它们尚不存在。如果它们确实存在,则不应发生任何操作(noop)。
所以我使用 $setOnInsert 参数如下
return Order.findByIdAndUpdate(
order._id,
{
$setOnInsert: order
},
{
upsert: true,
new: true
});
如果我理解正确,这应该只在文档不存在时插入文档,否则不执行更新。
但发生的情况是,每当我运行此操作时,updatedAt 时间戳都会更新。
如何防止这种情况发生?这是预期的行为还是我选择了错误的方法来“仅在不存在时插入”?
【问题讨论】: