私は次のようなJSONを持っています:
{
"_id" : "1",
"_class" : "com.model.Test",
"itemList" : [
{
"itemID" : "1",
"itemName" : "Foo",
"resources" : [
{
"resourceID" : "1",
"resourceName" : "Foo Test1"
}, {
"resourceID" : "2",
"resourceName" : "Foo Test2"
}
]
}
]
}
itemList のレコードの 1 つを削除できる必要があります。私は次のことをしました:
public void removeItemByID(String docID, String itemID) throws Exception {
MongoOperations mongoOperations = mongoConfiguration.getMongoTemplate();
Query query = new Query(where("_id").is(docID).and("itemList.itemID").is(itemID));
mongoOperations.remove(query, Item.class);
}
このアプローチは機能しません。ただし、 $pull アプローチで BasicDBObject を使用すると、正常に動作します! これらのアプローチの違いは何ですか!