spring mongo 查询根据匹配条件更新数组元素

问题描述

如何使用仅基于以下内容的 spring mongo 查询条件。

我不想使用 spring mongo save 方法,即使它执行 upsert 因为应用程序在多线程环境中运行,所以只有指定的值应该更新,其余的值不会改变。

假设文档如下:

{
        "dept": "FY","companyName": "TIS","id":"112234","contacts": [{
                    "name": "Jeff","phone": "222 - 572 - 8754"
                },{
                    "name": "Joe","phone": "456 - 875 - 4521"
                },{
                    "name": "Alex","phone": "789 - 875 - 4521"
                }
            ]
       
    }

根据 id 和传递给 update 方法的数组列表,联系人列表应该更新。

让我们基于 id=112234 并将联系人列表传递给更新方法,基于它应该更新的联系人姓名。

"contacts": [{
            "name": "Jeff","phone": "111 - 000 - 123"
        },{
            "name": "Joe","phone": "980 - 546 - 0000"
        }
        ]

最终的 mongo json 文档应该更新如下:

{
        "dept": "FY","phone": "111 - 000 - 123"
                },"phone": "980 - 546 - 0000"
                },"phone": "789 - 875 - 4521"
                }
            ]
       
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...