我有一个集合,其中包含联系号码的子节点,如下所示。
{"username":"abc",
"email": "xxx@xxx.com",
"contact":[
{"number":"4763485364","type":"mobile"},
{"number":"4535345345","type":"home"}
]}
它是一个重复集,我想知道如何根据使用mongodb Java驱动程序的类型删除或更改子节点中的特定数字。我能够使用BasciDBObject和集合中的find方法删除整个元素。但我想从特定用户的子节点中只删除一个数字(" home" type)。有人可以在java中向我展示示例代码吗?如何才能完成?
答案 0 :(得分:2)
您可以使用$ pull从数组中删除项目。
collection.update(new BasicDBObject("username","abc"), new BasicDBObject("$pull", new BasicDBObject("comments", new BasicDBObject("type","home"))));
此代码将从符合条件comments
的{{1}}数组中提取符合条件type = "home"
的项目中的元素。
希望这有帮助。