【发布时间】:2016-06-28 00:46:25
【问题描述】:
我有一个具有以下结构的 mongoDB 文档
{
"id": 9595511812,
"Feeds": [
{
"department": "mseb",
"consumer_number": 1234567890,
"due_date": "2016-11-11",
"due_amount": 400,
"balance_amount": 0,
"unitsConsumed": 40,
"freezeDate": "2016-11-11",
"lastPaidDate": "2016-11-11",
"billNumber": "9877",
"id": "1",
"paid": false
},
{
"department": "mseb",
"consumer_number": 1234567890,
"due_date": "2016-11-21",
"due_amount": 400,
"balance_amount": 0,
"unitsConsumed": 40,
"freezeDate": "2016-11-21",
"lastPaidDate": "2016-11-21",
"billNumber": "9877",
**"id": "2",**
"paid": false
}
]
}
我想为 id=2 的 Feed 更新付费 == true(上面的**标记字段)。如何在使用 mongo java 客户端时做到这一点?
我试过了
DB db = DBConnection.getDatabaseConnection();
DBCollection table = db.getCollection("customer");
BasicDBObject newDocument = new BasicDBObject();
newDocument.append("$set", new BasicDBObject().append("Feeds.paid", "true"));
BasicDBObject searchQuery = new BasicDBObject().append("id", "9595511812");
table.update(searchQuery, newDocument);
【问题讨论】: