Mongodb java - 如何删除特定文件

时间:2012-09-20 08:12:27

标签: mongodb-java

 {
CONTENT1:{
YDXM:[{
"name":"1",
"MBNH":"1"}
{"name":"2",
"MBNH":"2"}]
}

我想删除{"name":"1","MBNH":"1"}。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

假设以下内容是您的文档,并且您要删除整体文档:

{
    "CONTENT1": {
        "YDXM": [
            {
                "name": "1",
                "MBNH": "1"
            },
            {
                "name": "2",
                "MBNH": "2"
            }
        ]
    }
}

你可以用这个:

db.test.remove({"CONTENT1.YDXM.name" : "1", "CONTENT1.YDXM.MBNH" : "1"})

现在,如果要从 CONTENT1.YDXM 数组中提取文档{"name" : "1", "MBNH" : "1"},则应使用$ pull运算符:

db.test.update({"CONTENT1.YDXM.name" : "1", "CONTENT1.YDXM.MBNH" : "1"}, { $pull :  { "CONTENT1.YDXM" : {"name" : "1", "MBNH" : "1"}  } }, false, true)

这将在与第一个参数匹配的所有文档中执行更新。使用$ pull运算符的第二个参数意味着mongodb将从CONTENT1.YDXM数组中删除值{"name" : "1", "MBNH" : "1"}

您可以在此链接中阅读有关$ pull运算符和更新命令的更多信息: http://docs.mongodb.org/manual/reference/operator/pull/ http://docs.mongodb.org/manual/applications/update/

相关问题