Remover uma entrada da matriz usando o driver MongoDB-Java
Eu tenho como JSON:
{
"_id" : "1",
"_class" : "com.model.Test",
"itemList" : [
{
"itemID" : "1",
"itemName" : "Foo",
"resources" : [
{
"resourceID" : "1",
"resourceName" : "Foo Test1"
}, {
"resourceID" : "2",
"resourceName" : "Foo Test2"
}
]
}
]
}
Eu preciso ser capaz de remover um dos registros de itemList. Eu fiz o seguinte:
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);
}
Essa abordagem não funciona. No entanto, quando eu usei o BasicDBObject com a abordagem $ pull funciona bem! Qual é a diferença entre essas abordagens!