我收到了一个类似于以下JSON字符串:
String tmp = "[
{
"ID":"12",
"Date":"2018-02-02",
"ObjData":[
{
"Name":"AAA",
"Order":"12345",
"Extra1":{
"Temp":"3"
},
"Extra2":{
"Temp":"5"
}
},
{
"Name":"BBB",
"Order":"54321",
"Extra1":{
"Temp":"3"
},
"Extra2":{
"Temp":"5"
}
}
]
}
]"
我想要从´ObjData´中删除"Order"等于"54321"的文档。我有以下代码:
Document doc = new Document();
doc = Document.parse(tmp);
Document fields = new Document("ID", "12")
.append("ObjData", Arrays.asList(new Document("Order", "54321")));
Document update = new Document("$pull", fields);
coll.updateOne(doc, update);
我正在尝试使用“拉取”方法,将“订单”等于54321的整个文档从数组中移除,但出现了问题,可能是我做错了什么。能否请有经验的人指点一下问题所在?
另外,最好的方法是什么,以便计算数组中的文档总数,这样一旦所有文档都被拉出,整个文档就会从数据库中删除?是否应该添加某种“大小”属性并跟踪大小,在每次拉出后减少它?