Я имею следующую структуру в моем документе:
{
_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
, если бы я хотел обновить это значение в массиве для каждого документа, в котором оно существует, но это не то, чего я хочу.
Я пытаюсь выполнить это на java , но решение командной строки также будет работать.
-121--1150384-
Например, вместо следующего выравнивания:
std::cout << "Hello " << "Hello "
<< "world ";
необходимо выровнять по левому краю оператор , как
std::cout << "Hello " << " Hello "
<< "world ";
По умолчанию Vim выбирает первый. Похоже, он просто увеличивает отступы на один уровень для новой строки.
Итак, есть ли способ, которым я могу получить второе выравнивание по умолчанию?
P.S. Я уже пробовал плагин Align , но он выравнивает область в таблице, как:
std::cout << "Hello World" << "Hello "
<< "World" << "World Hello".
который я считаю слишком разреженным.