簡體   English   中英

Java的MongoDB-查找文檔和嵌套插入更新

[英]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_houruserid都匹配,我想在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM