gpt4 book ai didi

mongodb - 使用 JAVA 更新 mongoDB 中的文档

转载 作者:可可西里 更新时间:2023-11-01 09:59:22 24 4
gpt4 key购买 nike

我刚刚开始使用 JAVA 学习 mongoDB。我在 mongo 中有以下文档

{
"_id": {
"$oid": "513fa587c5d0cf174eb9b1f8"
},
"suitename": "test_suite_name",
"testname": "test_name]",
"milestones": [
{
"milestone_id": 45
}
]
}

我在 suitename、testname 和 milestone_id 上有一个复合键。我必须处理一个包含这三个字段的文件。我创建了一个简单的 DBObject 查询并检查 count != 0

BasicDBObject query = new BasicDBObject();
query.put("suitename", testsuite);
query.put("testname", testcase);
query.put("milestones.milestone_id", SampleProgram.milestone_id);

如果 count == 0 --> 在 mongo 中添加文档 -> 这似乎工作正常

我想弄清楚的是:如果我的文件中有一个新的 milestone_id 值,我只需要向某个现有文档的里程碑数组添加一个里程碑。现有文档是根据套件名称和测试名称确定的。

所以如果 milestone_id = 10,文档应该是这样的

{
"_id": {
"$oid": "513fa587c5d0cf174eb9b1f8"
},
"suitename": "test_suite_name",
"testname": "test_name]",
"milestones": [
{
"milestone_id": 45
},
{
"milestone_id": 10
}

]
}

我怎样才能做到这一点?

谢谢

最佳答案

这可以通过 $push 来完成将值附加到数组的运算符和 update(…)方法。

BasicDBObject query = new BasicDBObject();
query.put("suitename", testsuite);
query.put("testname", testcase);

BasicDBObject push = new BasicDBObject();
push.put("$push",
new BasicDBObject("milestones",
new BasicDBObject("milestone_id", SampleProgram.milestone_id)));

yourCollection.update(query, push);

关于mongodb - 使用 JAVA 更新 mongoDB 中的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15373624/

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