仅当没有具有相同"key"的文档时,如何将子文档插入数组字段:"value"对(MongoDB)?



我有一组文档,如下所示:

{
"AAA": 1,
"BBB": [
{
"CCC": 1,
"DDD": [1,2,3]
}
]
}

如何将新的子文档({"CCC": 1, "DDD": []}(插入到";BBB";数组,如果不存在具有{"CCC":1}密钥对的对象?

您实际上可以通过以下几种方法来实现这一点,最简单的方法是如果文档具有CCC: 1,则使查询"失败"匹配,如下所示:

db.collection.updateOne(
{
_id: docId,
'BBB.CCC': {
$ne: 1,
},
},
{
'$push': {
BBB: {
'CCC': 1,
'DDD': [],
},
},
},
);

现在,如果文档的BBB.CCC值为1,那么更新将找不到要更新的文档,并且不会像您预期的那样更新任何内容。

Mongo游乐场

相关内容

  • 没有找到相关文章

最新更新