Ich habe eine Anforderung, dass alle eingebetteten Dokumente mit demselben Attribut aktualisiert werden müssen.MongoDb 3.2: Aktualisieren von Datensätzen
e.g. `Person oneToMany Addresses`
hier Adressen Dokument eingebettet, und ich möchte eine Abfrage schreiben, das Ergebnis geben wird, dass, wenn für eingebettetes Dokument, i city="New York"
meine alle eingebetteten Dokumente schreiben sollten als city="New York"
aktualisiert werden.
EDIT:
Ich habe in embeded Dokument Mutter Dokument 'id' gegeben
Unten Methode ist:
public Boolean updateAddressIsolataed(AddressModel addressModel) {
final Query query = new Query();
query.addCriteria(
Criteria.where("$isolated").is(1).and(PersonEntity.Address)
.elemMatch(Criteria.where("parentId").is(addressModel.getParentId())));
System.out.println("query:" + query.toString());
final Update update = new Update();
update.set(PersonEntity.Address + ".$." + "city", addressModel.getCity());
WriteResult wr = mongoTemplate.updateMulti(query, update, PersonEntity);
return wr.isUpdateOfExisting();
Wenn mehr Erklärung benötigen Sie mich fragen. Vielen Dank im Voraus.
EDIT 2:
Beispieldokument:
{
"_id" : ObjectId("571da15563500213286936bf"),
"_class" : "com.sample.entities.PersonEntity",
"name" : "Asin",
"age" : "22",
"address" : [
{
"_id" : ObjectId("5735acc5b29cadaf65a7f822"),
"parentId" : "571da15563500213286936bf",
"city" : "New York",
"state" : "QWERTY",
"zipcode" : 500
},
{
"_id" : ObjectId("5735acc5b29cadaf65a7f822"),
"parentId" : "571da15563500213286936bf",
"city" : "Mumbai",
"state" : "Maharashtra",
"zipcode" : 500
}
]
}
Haben Sie etwas für sich selbst zuerst versucht zu tun? – aribeiro
ja, ich habe es versucht, aber es gibt mir nur einen Datensatz zu aktualisieren. Ich habe es auch in ihrer Dokumentation aber nicht nichts finden, die diese – Vivek
Bitte passt auf, aktualisieren Sie Ihre Frage mit der Abfrage Sie, um erstellt haben uns Ihre Bemühungen zu zeigen. – aribeiro