В моем документе следующая структура:
{
_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 operator
, если бы я хотел обновить это значение в массиве для каждого документа, в котором он существует, но это не то, что я хочу.
Я пытаюсь сделать это в java , но решение командной строки также подойдет.