mongo shell跨多个集合的命令

时间:2017-07-25 14:03:49

标签: mongodb mongo-shell

我正在尝试对多个集合执行以下日期转换:

db.u201409.find().snapshot().forEach(
  function (e) {
    e.sta = new Date(e.start);
    e.sto = new Date(e.stop);
    db.u201409.save(e);
  }
)

可以看出,这仅适用于一个集合,即“u201409”。格式为uYYYYMM。我需要为从201409到201604的集合执行完全相同的命令,因此对于u201409,u201410,u201411,u201412,u201501,...,u201604。

这是否可以使用shell脚本,如果是这样,如何实现?

1 个答案:

答案 0 :(得分:2)

Mongo Shell命令语言是JavaScript,所以只需编写JavaScript:

var a = ["u201401", "u201402"...]
for (var i = 0; i < a.length; i++) {
    db[a[i]].find().snapshot().forEach(
        ...
    )
}