Подтвердить что ты не робот

Как удалить атрибут из объекта MongoDb?

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

4b9b3361

Ответ 1

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

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

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

Обновлено благодаря комментарию Ксавье Гихота !

Удалить: (оставлено только для справки о старом синтаксисе)

//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 из всех записей этой коллекции.