J'ai besoin de mettre à jour tous les documents incorporés avec le même attribut.MongoDb 3.2: mise à jour des enregistrements
e.g. `Person oneToMany Addresses`
ici Adresses est intégrée document et je veux écrire une requête qui donnera suite que si, pour le document embarqué, j'écris mes city="New York"
tous les documents intégrés devraient être mis à jour city="New York"
.
EDIT:
J'ai donné le document 'id' parent dans le document embeded
est la méthode ci-dessous:
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();
Si besoin plus me demander des explications s'il vous plaît. Merci d'avance.
EDIT 2:
exemple de document:
{
"_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
}
]
}
Avez-vous essayé de faire quelque chose pour vous d'abord? – aribeiro
oui, j'ai essayé mais ça ne me donne qu'un seul enregistrement à mettre à jour. Je l'ai également vérifié dans leur documentation mais je n'ai rien trouvé qui corresponde à cela – Vivek
S'il vous plaît, mettez à jour votre question avec la requête que vous avez créée afin de nous montrer vos efforts. – aribeiro