【问题标题】:How to delete particular data in a document in mongodb如何删除mongodb文档中的特定数据
【发布时间】:2014-05-22 07:55:37
【问题描述】:

您好,以下是我在 mongodb 中的文档,现在我想删除数据 Kumar[] 在给定的文档中,我使用了 (update pop) 和 remove 函数。一个是删除内部数据,另一个是删除整个文档。在删除文档中所需的数据时,感谢您的帮助

 {
        "_id" : ObjectId("537d98c2a8357030c4f46cc0"),
        "name" : "karan",
        "address" : "hyd",
        "hobbies" : [ 
            "listeningmusic", 
            "chess"
        ],
        "friends" : [ 
            {
                "satish" : "school"
            }, 
            {
                "naresh" : "college"
            }, 
            {
                "dileep" : "school"
            }, 
            {
                "pavan" : "neighbour"
            }, 
            {
                "kumar" : "office"
            }
        ],
        "kumar" : []
    }

我尝试了以下查询

db.userdata.update({kumar:"office"},{$pull:{kumar:"office"}})

 db.userdata.remove({kumar:"office"},1)

【问题讨论】:

  • 等待您是要删除数组还是删除数组中的数据?
  • 如果不确定,您应该始终检查您的查询是否与任何文档匹配。 db.userdata.find({kumar:"office"}) 实际上没有返回任何内容,因此无论如何都不会进行部分更新。 @Neil Lunn 的回答对其他一切都是正确的。

标签: mongodb mongoid mongodb-query


【解决方案1】:

在查询中使用$unset 运算符与$exists 结合使用,以匹配具有错误字段的文档:

db.userdata.update({ "kumar": { "$exists": 1 },{ "$unset": { "kumar": "" } })

这将删除您在文档中显示的空数组。

【讨论】:

    猜你喜欢
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多