我想知道如果更新中使用的值不存在于数组中,是否可以只用一个操作(或一个命令)来更新 mongodb 中的文档。
示例 mongodb 文档:
{
regs : {
someid : 12345,
dataArray : [ { id : 1 }, { id : 43 }, { id : 11 }]
}
}
现在我只想在 dataArray 中的 id 尚未使用时更新,例如:
db.regs.update({ someid : 12345 }, { $push : { dataArray : { id : INT }}})
使用上面的代码行可以检查 { id : INT }
是否已经在我的数组中并且仅当它不在时才更新?
最佳答案
有两种方式。例如,您可以使用查询匹配感兴趣的文档:
db.regs.update(
{someid : 12345, 'dataArray.id': {$ne: INT}},
{$push : { dataArray : {id : INT }}}
)
或使用 addToSet
执行更新:
db.regs.update(
{someid : 12345},
{$addToSet : {dataArray : {id : INT }}}
)
关于mongodb - 如果使用 mongodb 的数组中不存在值,则更新的一项操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18938681/