使用 findAndUpdateOne 在 mongoose 中设置条件 $

问题描述 投票:0回答:1
当我使用

options : { upsert: true, new: true,}

 在 mongoose 中 findAndUpdateOne 时,我只想更新数据库中不存在的密钥。

这是我的更新

update = { $addToSet: { items: body.item, }, $set: { "cover": { $cond: { if: { $exists: false }, then: String(product.Images), } } } },
这给了我 CastError。

mongodb mongoose
1个回答
0
投票

$cond

 是聚合运算符。为了在更新中使用聚合运算符,您需要使用管道形式。

此外,您可以使用

$ifNull

 运算符在单个操作中完成条件,例如:

update = [ {$set:{ items: {$setUnion:["$items", body.item]}, cover: {$ifNull:["$cover", String(product.Images)]} }} ]
    
© www.soinside.com 2019 - 2024. All rights reserved.