循环通过mongodb Collection

时间:2014-09-09 13:05:34

标签: arrays mongodb

我正在尝试将以下集合的ip1ip2ip3字段推送到每个文档的ips数组中。

[
  {
    "_id": "540dc0e605c458b3e5481911",
    "valid_ip": "100.100.XXX.191",
    "ip1": "100.100.XXX.191",
    "ip2": "100.100.XXX.103",
    "ip3": "100.100.XXX.192",
    "ips": [ ]
  },
  {
    "_id": "540dc0e605c458b3e5481910",
    "valid_ip": "100.100.XXX.250",
    "ip1": "100.100.XXX.250",
    "ip2": "100.100.XXX.249",
    "ips": [ ]
  },
  ...
]

我试图在mongo中运行此命令,但它没有改变任何内容。

db.servers.find().snapshot().forEach(
  function(e) {
    if (e.ip1) {
      e.ips.push(e.ip1);
      db.events.save(e);
    }
  }
);

怎么了?感谢。

1 个答案:

答案 0 :(得分:0)

你的命令没问题。您是否尝试更新事件集合或同一集合,即服务器?要更新相同的集合 -

db.servers.find().snapshot().forEach(
   function(e) {
    if (e.ip1) {
       e.ips.push(e.ip1);
       db.servers.save(e);
     }
   }
);