首页 > 解决方案 > 如何从 Springboot 更新 mongoDb 中的单个 JSON 字段

问题描述

我正在尝试更新 MongoDb 中存储的 JSON 的单个字段的值Springboot。我没有使用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"
                }
            }
        }
    }

标签: jsonmongodbspring-bootspring-data-mongodb

解决方案


是的,您可以通过 mongoOperations 和 Update 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);

推荐阅读