我有很多功能用 mongo 更新
这是一个例子:
db.auto.update({'def.name':'AFFAIRES'},{$push:{
"covers":{$each: [{"a":'G06'},{"a":'G07'},{"a":'G03'},{"a":'G04'},{"a":'G07'},{"a":'G30'},{"a":'G34'},
{"cover":'G14'}]}}},{multi:true})
但是,问题是,我的集合可能包含这些变量之一“a”,所以我不需要推送它,如果没有,我必须将它推送到集合中。 所以我的问题是如何告诉 mongoDB 在推送之前进行验证,这可能吗? 我的查询可能还包含其他要推送的变量。
最佳答案
使用$addToSet - $addToSet 运算符向数组添加一个值,除非该值已经存在。如果该值已经存在,则 $addToSet 对该数组不做任何事情。 $addToSet 仅确保没有重复的项目添加到集合中,并且不影响现有的重复元素。 $addToSet 不保证修改后的集合中元素的特定顺序。
关于mongodb - 推送 mongoDB 中的元素,如果它不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39223971/