使用$ in在mongo中向上插入多个文档而不循环

时间:2019-04-12 09:11:51

标签: mongodb go bson

我的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地址列表,并在db中向上插入数据,即,如果db中的文档中LAN包含对象, MAC地址列表中的MAC-更新“ otherdata”,否则只需创建新文档即可。问题是我有多个mac地址作为输入,因此我需要使用in $。由于新数据特定于每个文档,因此我需要知道当前要更新的内容。

正如我所看到的,我需要遍历mac-address并为它们中的每个请求单独的upsert请求,这似乎并不有效。还有其他方法吗?

0 个答案:

没有答案