特定于数组的java mongodb更新
我在MongoDB中存储了以下文档:特定于数组的java mongodb更新,java,mongodb,sql-update,Java,Mongodb,Sql Update,我在MongoDB中存储了以下文档: { "id" : "5101", "contractId" : "001", "dueId" : [{"id":"001"},{"id":"002"}], "overdueAmount" : "", "amount" : "", "customerContact" : "Humus" } 我想更新以下数据: { "id" : "5101", "contractId" : "001", "dueId" : [{"id"
{
"id" : "5101",
"contractId" : "001",
"dueId" : [{"id":"001"},{"id":"002"}],
"overdueAmount" : "",
"amount" : "",
"customerContact" : "Humus"
}
我想更新以下数据:
{
"id" : "5101",
"contractId" : "001",
"dueId" : [{"id":"001"},{"id":"002"},{"id":"003"}],
"overdueAmount" : "200",
"amount" : "100",
"customerContact" : "Bim"
}
您可以看到,dueId
已更新(插入一个元素)和amount
,overdueamute
,客户联系人也已更新
如何使用mongodb use update?通过使用运算符,您可以向数组中添加新项,使用运算符,您可以更新其他字段
查询应类似于:
db.collection.update({"id":"5101"},{$push:{"dueId" : {"id" : "003"}}, $set : {"overdueAmount":"200", "amount" : "100", "customerContact" : "Bim"}})
通过使用Java驱动程序:
DBCollection coll = ...
DBObject query = new BasicDBObject("id", "5101");
DBObject pushObj = new BasicDBObject("dueId", new BasicDBObject("id", "003"));
DBObject setObj = new BasicDBObject();
setObj.put("overdueAmount", "200");
setObj.put("amount", "100");
setObj.put("customerContact", "Bim");
DBObject updateObj = new BasicDBObject();
updateObj.put("$push", pushObj);
updateObj.put("$set", setObj);
coll.update(query, updateObj);
我只想通过一条update语句来更新mongodb,但我如何在java中使用它呢