Как обновить значение конкретного встроенного документа, внутри массива, конкретного документа в MongoDB?

В моем документе есть следующая структура:

{
  _id : ObjectId("43jh4j343j4j"), 
  array : [
            { 
              _arrayId : ObjectId("dsd87dsa9d87s9d7"),
              someField : "something",
              someField2 : "something2"
            },
            { 
              _arrayId : ObjectId("sds9a0d9da0d9sa0"),
              someField : "somethingElse",
              someField2 : "somethingElse2"
            }
   ]
 }

Я хочу обновить someField и someField2, но только для одного из элементов массива, того, который соответствует _arrayId (например, _arrayId : ObjectId("dsd87dsa9d87s9d7"); и только для этого документа (например, _id : ObjectId("43jh4j343j4j") ) и ни для какого другого.

Массив arrayIds не является уникальным для документа, поэтому мне нужно, чтобы он был для конкретного документа. Я мог бы использовать позиционный оператор $, если бы хотел обновить это значение в массиве для каждого документа, в котором оно существует, но это не то, что мне нужно.

Я пытаюсь сделать это в , но решение из командной строки тоже подойдет.

10
задан rjgonzo 15 September 2011 в 14:36
поделиться