0
すべての埋め込み文書を同じ属性で更新する必要があるという要件があります。MongoDb 3.2:レコードの更新
e.g. `Person oneToMany Addresses`
ここにアドレスが埋め込まれた文書であり、私があれば、埋め込まれた文書のために、私はcity="New York"
私のすべての埋め込みドキュメントを書くcity="New York"
ように更新されるべきであるとの結果が得られますクエリを書きたいです。私に聞いてください任意のより詳細な説明が必要な場合は
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();
:
EDIT:
私は以下
埋め込まドキュメントで親ドキュメント 'ID' を与えているメソッドです。 ありがとうございます。
EDIT 2:
サンプル文書:位置$演算子のドキュメントによると
{
"_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
}
]
}
で見ることができ、あなたは最初に自分のために何かをやってみましたか? – aribeiro
はい、私は試しましたが、アップデートするレコードは1つだけです。私は彼らの文書でも確認しましたが、これに一致するものは何も見つかりませんでした。 – Vivek
あなたの努力を示すためにあなたが作成した質問で質問を更新してください。 – aribeiro