gpt4 book ai didi

arrays - 如果不存在,MongoDB 将值添加到数组

转载 作者:行者123 更新时间:2023-12-03 13:44:38 26 4
gpt4 key购买 nike

我有这个系列:

{
username : "user1",
arr : [
{
name : "test1",
times : 0
},
{
name : "test2",
times : 5
}
]
}

我有一个带有一些对象的数组。该对象具有名称和值时间。现在我想添加新对象,如果我的数组不包含它们。例子:

我已经在集合中拥有这两个名称为“test1”和“test2”的对象。我现在想插入对象“test2”、“test3”和“test4”。它应该只将对象“test3”和“test4”添加到数组中,而不是再次添加“test2”。在这种情况下,值时间不做任何事情,它们在插入时应该只有值 0。

有没有办法通过一个查询来做到这一点?

最佳答案

如果可以插入test1 , test2 ,... 一个一个,然后你就可以做这样的事情了。

db.collection.update(
{username : "user1", 'arr.name': {$ne: 'test2'}},
{$push: {
arr: {'name': 'test2', 'times': 0}
}
})
$ne如果名称已存在于 arr 中,则条件将阻止更新.

关于arrays - 如果不存在,MongoDB 将值添加到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42115946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com