Моя коллекция состоит из документов, подобных этому:
Код: Выделить всё
{
"file_name": "foo",
"date": "2024-05-07",
"count": 1,
"deliveries": [
{
...,
"events": [
...
],
"type": "NG"
},
{
...,
"events": [
...
],
"type": "Legacy"
}
],
"snapshot_timestamp": 1234567
}
Код: Выделить всё
collection.update_one(
{
"file_name": ...,
"snapshot_timestamp": ...,
},
{
"$set": {
"deliveries.$[outer].type": "NG",
"deliveries.$[outer].foo": "bar",
"count": 5
},
"$push": {
"deliveries.$[outer].some_array": "some_value"
}
},
upsert=True,
array_filters=[
{"outer.x": "y"}
]
)
Код: Выделить всё
{
"file_name": "foo",
"date": "2024-05-07",
"count": 1,
"deliveries": {
"$[outer]": {
...,
"events": [
...
],
"type": "NG"
},
},
"snapshot_timestamp": 1234567
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... l-array-fi