如何从Springboot更新mongoDb中的单个JSON字段

问题描述 投票:0回答:1

我正在尝试从Springboot更新MongoDb中存储的JSON的单个字段的值。我不使用POJO,因为JSON模式始终是随机的。


// this is what I'm trying to achieve. But I don't know how to do it from SpringBoot.
    db.collection.update(  { _id:12345} , { $set: { a.b.c.d : updatedValue  } } 

这是我将JSON对象保存到MongoDB的方式:


    Mongo mongo = new Mongo("localhost", 27017);
                DB db = mongo.getDB("dbOne");
                DBCollection collection = db.getCollection("data");

                // convert JSON to DBObject directly
                DBObject dbObject = (DBObject) JSON
                        .parse(jsonString);

                collection.insert(dbObject);

我的JSON示例数据:


    {
        "a":{
            "b":{
                "c":{
                    "d":"value1",
                    "e":"value2"
                }
            }
        }
    }

json mongodb spring-boot spring-data-mongodb
1个回答
0
投票

是的,您可以通过mongoOperations和更新API来完成。这将允许您更新mongodb集合中的各个字段-例如:

Query query = new Query(new Criteria("id").is(12345L));
Update updateOp = new Update().set("a.b.c.d", value);
mongoOperations.updateFirst(query, updateOp, COLLECTION);
© www.soinside.com 2019 - 2024. All rights reserved.