Необходимо обновить данные в массиве внутри данных монго для проверки.
Мне нужно изменить значение «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 Я не получаю ошибок.