根据How do I update Array Elements matching criteria in a MongoDB document?
我想向上插入数组元素,所以如果一个不匹配,则将其插入,否则对其进行更新。
我尝试了该问题的答案,如果array元素已经存在,则可以正常工作。如果元素不存在,那么它将在数组字段下创建子元素“$”。
我的Mongo结构如下:
Widget (collection)
--Name
--Properties (array)
--Name
--Value
我的应用程序从WebService调用获取窗口小部件名称和属性列表。我希望对提供的Properties进行迭代,如果Name已经存在,则更新MongoDB中的值;如果不存在,则将新的Properties插入Properties数组中。
最佳答案
没有一些应用程序侧逻辑,使用单个更新就不可能实现您所需要的。请注意,将ups作为功能与该特定问题无关,除非您不希望使用提供的名称来自动创建新的Widget文档,除非您希望自动创建新的Widget文档。
您遇到的问题是,没有任何功能允许您根据数组元素的存在来执行两个不同的更新。您仅有的两个选择是:
关于arrays - 在MongoDB文档中增加匹配条件的数组元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8871363/