2015-02-26 5 views
0

Im пытается добавить «роль» в документ, который является команда обновления, такие как это:Обновление в mongodb, более чем одним способом?

db.users.update({username: 'someUser'},{'$set': {roles: ['user', 'admin']}}); 

Для документа структурированным, как это:

{ 
    _id:'22222', 
    username : '', 
    roles: ['user'] 
} 

Есть ли другой способ делаете это, кроме как из запроса выше?

ответ

3

Есть также $addToSet, который добавляет в набор и $pull, который удаляет из операторов множеств.

Таким образом, ваш запрос может выглядеть следующим образом:

db.users.update(
    { username: 'someUser' }, 
    { $addToSet: { roles: 'admin' } } 
); 

UPD: Как @Juan Карлос Farah упоминается там также $push, что добавляет значение оператора массива.

+1

Несомненно, вы имеете в виду оператора '$ push', верно? –

+0

Я указал $ pull, чтобы показать, как элемент можно удалить. – zaynetro

+1

Вижу. Возможно, вы захотите указать, что '$ pull' удаляется, так как вопрос задается специально для вставки в массив. –

Смежные вопросы