Обновите определенное значение в mongoDB, используя Java - PullRequest
0 голосов
/ 21 мая 2019

Необходимо обновить данные в массиве внутри данных монго для проверки.

Мне нужно изменить значение «ValueStatus» в QC1 на «VERIFIED» и «ValueChanged» на «YES».

Что я есть

qcSection = (Document) att.get("QC1");
if (qcSection.getString("InitialValue").equals(initialValue) && qcSection.getString("NewValue").equals(newValue)) {

    BasicDBObject query = new BasicDBObject();
    query.put("QC1", qcSection);

    BasicDBObject data = new BasicDBObject();
    data.put("QC1.$.Status", "VERIFIED");

    BasicDBObject command = new BasicDBObject();
    command.put("$set", data);
    collection.updateOne(query, command);
    break;
}

я делаю то же самое, что и @ BatScream, как указано выше.

Мои данные Mongo:

{
    "_id" : ObjectId("46745764576"),
    "DocumentName" : "ABC.doc",
    "CompanyId" : 1,
    "Attributes" : [ 
        {
            "AttributeName" : "Governing Law",
            "AppliedRule" : 12,
            "ApplicationExtractedValue" : {
                "InitialValue" : "India"
            },
            "QC1" : {
                "InitialValue" : "India",
                "NewValue" : "Europe",
                "ValueStatus" : "UNVERIFIED",
                "ValueChanged" : "No",
                "ValueAddedBy" : "iii@iii.com",
                "QCLevel" : 1,
                "QCDate" : ISODate("546533rT07:04:36.756785Z")
            }
        }
    ]
}

Необходимо обновить

{
    "_id" : ObjectId("46745764576"),
    "DocumentName" : "ABC.doc",
    "CompanyId" : 1,
    "Attributes" : [ 
        {
            "AttributeName" : "Governing Law",
            "AppliedRule" : 12,
            "ApplicationExtractedValue" : {
                "InitialValue" : "India"
            },
            "QC1" : {
                "InitialValue" : "India",
                "NewValue" : "Europe",
                "ValueStatus" : "VERIFIED",
                "ValueChanged" : "Yes",
                "ValueAddedBy" : "iii@iii.com",
                "QCLevel" : 1,
                "QCDate" : ISODate("546533rT07:04:36.756785Z")
            }
        }
    ]
}

Я ссылался на следующую ссылку, чтобы сделать это. обновление значения в массиве в mongodb из Java Я не получаю ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...