Сохранить несколько документов в монго с $ в без зацикливания - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть mongodb, содержащий документы в формате

    {
        "name": "device_name",
        "LAN": [
            {
                "MAC": "00-14-22-01-23-45",
                "IP": "192.168.1.10",
            },
            {
                "MAC": "00:25:96:FF:FE:12:34:56",
                "IP": "192.168.1.54",
            }
            ],
        "otherdata": "somedata",
    }

Мне нужна функция, которая получит массив структур, соответствующих этим документам, получит список mac-адресов этих структур и сохранит данные в БД, т.е. если в БД есть документ, в котором ЛВС содержит объект с MAC из списка mac-адресов - обновите «otherdata», иначе просто создайте новый документ. Проблема в том, что у меня есть несколько MAC-адресов в качестве входных данных, поэтому мне нужно использовать в $. Поскольку новые данные специфичны для каждого документа, мне нужно знать, что я сейчас обновляю.

На мой взгляд, мне нужно перебрать mac-адреса и сделать отдельный запрос upsert для каждого из них, что не представляется эффективным. Есть ли другой способ сделать это?

...