2015-03-09 2 views
2
{ 
"_id" : ObjectId("54fd4ddaa037ba481d794f5e"), 
"question" : "let me go?", 
"choices" : [ 
    { 
     "text" : "yes", 
     "_id" : ObjectId("54fd4ddaa037ba481d794f60"), 
     "votes" : [ ] 
    }, { 
     "text" : "y", 
     "_id" : ObjectId("54fd4ddaa037ba481d794f5f"), 
     "votes" : [ ] 
    } 
], 
"__v" : 0 
} 

Я хочу изменить значение «y» на «no», How? хочет свой ответ благодаряMongoDb изменяет значение во встроенном документе

+2

использования ['$ set'] (http://docs.mongodb.org/manual/reference/operator/update/set/#set-elements-in-arrays) для установки элементов в массиве, то есть' db.collection.update ({_id: ObjectId ("54fd4ddaa037ba481d794f5e")}, {$ set: {"choice.1.text": "no"}}); ' – chridam

+1

большое спасибо, это сработало! –

ответ

1

Используйте $set оператора вместе с $ positional оператора в вашем обновлении для установки элементов в массиве без явного указания позиции элемента в массиве т.е.

db.collection.update(
    { "question": "let me go?", "choices.text": "y" }, 
    { $set: { "choices.$.text": "no" } } 
); 
Смежные вопросы