mongodb无法使用Java更新以下请求数据

时间:2018-11-27 13:44:04

标签: mongodb

以下是我的JSON请求数据,我想更新货币和subAmount。我尝试过,但是更新不正确。

这是我的代码:

{
    "mid":"5032219",
    "description" : "Sample description",
    "currency" : "INR",
    "amount" : {
        "subAmount":"20"
    }
}

我尝试使用以下代码, 传递参数的值是-{currency = AUG,amount = {“ subAmount”:“ 20.00”}} public void updateInvoiceModel(InvoiceModel model,Map param){

        MongoCollection<Document> collection = database.getCollection("invoice");
        BasicDBObject searchQuery = new BasicDBObject("invoiceNumber", model.getInvoiceNumber());
        BasicDBObject updateFields = new BasicDBObject();
        for (Entry<String, Object> entry : param.entrySet()) {
            updateFields.append(entry.getKey(), entry.getValue());
        }
        BasicDBObject setQuery = new BasicDBObject();
        setQuery.append("$set", updateFields);
        collection.updateOne(searchQuery, setQuery);

} 请让我知道是否有人可以解决。

1 个答案:

答案 0 :(得分:0)

请使用以下内容:

db.collection_name.update(
   { _id: mid },
   { $set:
      {
         "currency" : "INR", "amount" : { "subAmount":"20" }
      }
   }
)