删除mongodb java中的子节点

时间:2014-06-16 09:42:14

标签: java mongodb mongodb-java

我有一个集合,其中包含联系号码的子节点,如下所示。

{"username":"abc",
"email": "xxx@xxx.com",
"contact":[
            {"number":"4763485364","type":"mobile"},
            {"number":"4535345345","type":"home"}
          ]}

它是一个重复集,我想知道如何根据使用mongodb Java驱动程序的类型删除或更改子节点中的特定数字。我能够使用BasciDBObject和集合中的find方法删除整个元素。但我想从特定用户的子节点中只删除一个数字(" home" type)。有人可以在java中向我展示示例代码吗?如何才能完成?

1 个答案:

答案 0 :(得分:2)

您可以使用$ pull从数组中删除项目。

collection.update(new BasicDBObject("username","abc"), new BasicDBObject("$pull", new BasicDBObject("comments", new BasicDBObject("type","home"))));

此代码将从符合条件comments的{​​{1}}数组中提取符合条件type = "home"的项目中的元素。

希望这有帮助。