【问题标题】:How to update individual JSON field in mongoDb from Springboot如何从 Spring Boot 更新 mongoDb 中的单个 JSON 字段
【发布时间】:2020-07-17 04:24:30
【问题描述】:

我正在尝试从 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】:

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

    【讨论】:

    • 很高兴它帮助了你。
    猜你喜欢
    • 2022-01-14
    • 1970-01-01
    • 2018-12-11
    • 2021-07-05
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    相关资源
    最近更新 更多