options : { upsert: true, new: true,}
在 mongoose 中 findAndUpdateOne 时,我只想更新数据库中不存在的密钥。这是我的更新
update = {
$addToSet: {
items: body.item,
},
$set: {
"cover": {
$cond: {
if: { $exists: false },
then: String(product.Images),
}
}
}
},
这给了我 CastError。
$cond
是聚合运算符。为了在更新中使用聚合运算符,您需要使用管道形式。此外,您可以使用
$ifNull
运算符在单个操作中完成条件,例如:
update = [
{$set:{
items: {$setUnion:["$items", body.item]},
cover: {$ifNull:["$cover", String(product.Images)]}
}}
]