Как обновить значение конкретного внедренного документа внутри массива определенного документа в 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 не являются уникальными для документа, поэтому они необходимы для конкретного документа. Я мог бы использовать оператор $ positional , если бы я хотел обновить это значение в массиве для каждого документа, в котором оно существует, но это не то, чего я хочу.

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

-121--1150384-

Как выполнить левое выравнивание операторов потока ввода-вывода > в Vim? Например, вместо следующего выравнивания: std:: cout

Например, вместо следующего выравнивания:

std::cout << "Hello " << "Hello "
  << "world ";

необходимо выровнять по левому краю оператор , как

std::cout << "Hello " << " Hello "
          << "world ";

По умолчанию Vim выбирает первый. Похоже, он просто увеличивает отступы на один уровень для новой строки.

Итак, есть ли способ, которым я могу получить второе выравнивание по умолчанию?

P.S. Я уже пробовал плагин Align , но он выравнивает область в таблице, как:

std::cout << "Hello World" << "Hello "
          << "World"       << "World Hello".

который я считаю слишком разреженным.

7
задан Keith Pinson 31 December 2012 в 17:03
поделиться