MongoDB обновляет несколько вложенных массивов - PullRequest
0 голосов
/ 08 января 2020

Я пытаюсь массово обновить значение в массиве вложенных документов в mongodb, используя PyMon go со структурой:

document-|
    events-|
       event1-|
          key: (1, 2)
       event2-|
          key: (1, 2)
       ...

Для каждого документа, для каждого события в событиях, которые я хочу проверить наличие пары kv UTM_coords_xy и, если она не существует, вставьте пару kv UTM_coords_xy: (x_coord, y_coord). У меня так далеко, но не совсем то, что я хочу, есть идеи?

db.update({"events.$[i].UTM_coords_xy": {"$exists" : "False"}}, { "$set": { "events.$[i].UTM_coords_xy": position } }, multi=True)

1 Ответ

0 голосов
/ 08 января 2020

Я думаю, array filters сделает тебе трюк.

a = db.update_many({
    "events": {"$exists": True}
}, {
    "$set": {
        "events.$[i].UTM_coords_xy": position
    }
}, array_filters= [{"i.UTM_coords_xy": {"$exists": False}}])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...