[英]MongoDB with Java - find a document and nested insert update
我有一個像這樣的文件:
{
timestamp_hour: ISODate("xxx"),
userid: "xxx",
type: "xxx",
balances: {
1: {input: 100, output: 200},
2: {input: 200, output: 300},
500: {input: 5000, output: 5500},
...
}
}
如果timestamp_hour
和userid
都匹配,我想在balances
插入新的number: {input: xxx, output: yyy}
對number: {input: xxx, output: yyy}
。 (有人告訴我,這更像是一個upsert
)
代碼如何? 我使用Java 8和org.apache.storm.core
1.1。
這里沒有upsert。 找到文件后,只需在天平內添加一個新的嵌入式字段。
MongoClient mc = new MongoClient();
MongoDatabase db = mc.getDatabase("db");
MongoCollection col = db.getCollection("col");
Bson query = Filters.and(Filters.eq("timestamp_hour", timestampHour), Filters.eq("userid", userId));
Document uDoc = new Document();
uDoc.put("input", xxx);
uDoc.put("output", yyy);
Bson update = Updates.set("balances." + number, uDoc);
col.updateOne(query, update);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.