Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
特定于数组的java mongodb更新_Java_Mongodb_Sql Update - Fatal编程技术网

特定于数组的java 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"

我在MongoDB中存储了以下文档:

{ 
  "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中使用它呢