У меня есть 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 для каждого из них, что не представляется эффективным. Есть ли другой способ сделать это?