mongodb数组指定项删除

比如:{"_id":ObjectId("534673c4e2632e93652fb70b"),"area":"5346603fe2630f5cd4748abd","com... 比如:{ "_id" : ObjectId("534673c4e2632e93652fb70b"), "area" : "5346603fe2630f5cd4748abd", "company" : "533e226da96d1c617a02b365", "desc" : "b", "name" : "b", "owners" : [ { "id" : ObjectId("534511bce263980b2f26fafe"), "enable" : true }, { "id" : ObjectId("533e3ba8a96d27855e057994"), "enable" : true } ] } 根据 _id,company,owners.id,删除指定的owners.id项。我是这样写的:
BasicDBObject query=new BasicDBObject();
query.put("_id", new ObjectId(did));
query.put("company",cid);
query.put("owners.id",new ObjectId(uid));

BasicDBObject _child=new BasicDBObject();

BasicDBObject child=new BasicDBObject();
child.put("id",new ObjectId(uid));
child.put("enable",true);

_child.put("owners",child);
try {
WriteResult r=DBManagerMongoDB.getInstance().Update("DataCenter", query,new BasicDBObject("$pull",_child),true,false);
if(r.getN()>-1){
flag=true;
}
} catch (UnknownHostException e) {

e.printStackTrace();
}
return flag;
}
新建一条数据吧。明明指定了条件,可是每次删除的时候,都是删除owner index最后一条数据,本应该删除指定的那一项。求怎么才能实现。。。
展开
 我来答
百度网友9df9420
2014-04-11
知道答主
回答量:21
采纳率:0%
帮助的人:9.8万
展开全部

你这个是php或者java的驱动吧,我是用C#,所以我就用Shell的写法举例子吧.

比如删除owner.id为ObjectId("534511bce263980b2f26fafe")的项,使用shell的写法应该是
:

db.yourcollection.update({},{ "$pull" : { "owner" : { "owner.id" : ObjectId("534511bce263980b2f26fafe") } } },false,true)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式