Как удалить определенные данные в документе в mongodb

Привет, это мой документ в mongodb, теперь я хочу удалить данные Kumar [] в данном документе, который я использовал (обновление всплывающих окон) и удалить функции. один удаляет внутренние данные, а другой удаляет весь документ, любая помощь приветствуется при удалении необходимых данных в документе.

 {
        "_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)

person Bharadwaja Bapatla    schedule 22.05.2014    source источник
comment
Подождите, вы хотите удалить массив или удалить данные в массиве?   -  person Sammaye    schedule 22.05.2014
comment
Если вы не уверены, вы всегда должны проверять, соответствует ли ваш запрос какому-либо документу. db.userdata.find({kumar:"office"}) на самом деле ничего не возвращает, поэтому частичное обновление все равно не произойдет. Ответ @ Нила Ланна верен для всего остального.   -  person Markus W Mahlberg    schedule 22.05.2014


Ответы (1)


Используйте оператор $unset в комбинации с $exists в запросе для соответствия документ с неправильным полем:

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

Это удалит пустой массив, который вы показываете в документе.

person Neil Lunn    schedule 22.05.2014