Как обновить отдельное поле JSON в mongoDb из Springboot - PullRequest
1 голос
/ 05 апреля 2020

Я пытаюсь обновить значение одного поля сохраненного JSON в MongoDb с 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);

My JSON пример данных:

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

1 Ответ

2 голосов
/ 05 апреля 2020

Да, вы можете сделать это с помощью 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);
...