Как удалить атрибут из объекта MongoDb? - PullRequest
26 голосов
/ 07 октября 2010

Я добавил атрибут MiddleName в свой объект Customer. Клиент - это простой экземпляр Object (). Я хочу удалить этот атрибут из моего объекта. Как я могу это сделать? Я использую интерактивную консоль MongoDb.

1 Ответ

57 голосов
/ 24 января 2011

Вы должны использовать модификатор $ unset при обновлении:

Удалить: (самый последний синтаксис) https://docs.mongodb.com/manual/reference/method/db.collection.update/

db.collection.update(
    {},
    { 
        $unset : { 
            "properties.service" : 1 
        } 
    },
    {
        multi: true
    }
);

Обновлено благодаря Xavier Guihot комментарий!

Удалить: (осталось только для ссылки на старый синтаксис)

// db.collection.update (критерии, objNew, upsert, multi)

db.collection.update( 
    { 
        "properties.service" : { 
             $exists : true 
         } 
    }, 
    { 
         $unset : { 
             "properties.service" : 1 
         } 
    }, 
    false, 
    true
);

Чтобы убедиться, что они были удалены, вы можете использовать:

db.collection.find( 
    { 
        "properties.service" : { 
            $exists : true
         } 
    } 
).count(true);

Не забудьте использовать опцию multi как true, если вы хотите обновить несколько записей. В моем случае я хотел удалить атрибут properties.service из всех записей этой коллекции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...