jus*_*key 9 arrays upsert mongodb
我想要插入数组元素,所以如果一个不匹配然后插入它,否则更新它.
我尝试了这个问题的答案,如果数组元素已经存在,它可以正常工作.如果元素不存在,那么它会在数组字段下创建一个子元素"$".
我的Mongo结构如下:
Widget (collection)
--Name
--Properties (array)
--Name
--Value
Run Code Online (Sandbox Code Playgroud)
我的应用程序从WebService调用获取Widget Name和Properties列表.我希望迭代提供的属性并在Name已经存在时更新MongoDB中的值,或者如果不存在则将新属性插入Properties数组.
Rem*_*iet 10
如果没有某些应用程序端逻辑,则无法使用单个更新.请注意,upsert作为一项功能与此特定问题无关,除非您想要自动创建新的Widget文档(如果不存在所提供的名称).
您遇到的问题是没有任何功能允许您根据数组元素的存在执行两个不同的更新.您唯一的两个选择是: