2014-02-04 2 views
0

СхемаКак установить значение нескольких массивов одновременно в MongoDB?

"_id" : ObjectId(""), 
"top_level_array" : [ 
    { 
     "array_one" : [ 
      "1", 
      "2", 
      "3", 
      "4", 
      "5" 
     ], 
     "name" : "user name", 
     "array_two" : [ 
      "1", 
      "2" 
     ], 
     "array_three" : [ 
      "1", 
      "2" 
     ] 
    }, 
    { 
    // another document 
    }, 
    { 
    // another document 
    } 
] 

Вопрос

Я могу успешно установить значение одного массива с:

db.users.update({email_addr:"[email protected]", "top_level_array.name":"user name"},{$set:{"top_level_array.$.array_one":["just one value now"]}}) 

Как я могу установить значение нескольких массивов в то же время?

ответ

0

Это работает для меня:

Отдельных различных массивов для обновления с запятой, например:

db.users.update({email_addr:"[email protected]", "top_level_array.name":"user name"},{$set:{"top_level_array.$.array_one":["just one value now"],"top_level_array.$.array_two":["another value"]}}) 

и уточнить контекст этого решения, запрос является условным в том, что он ищет совпадение на name в документе, а затем обновляет массивы, которые находятся на том же уровне, что и name, т.е. array_one и array_two.

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