根据Mongo中的列值返回集合名称

时间:2014-12-31 19:36:29

标签: mongodb mongodb-query nosql

我有5个集合C1,C2,C3,C4和N5,每个集合都有一个last_updated值。

db.getCollectionNames().filter(function(c){ return c.indexOf('C')==0})

将返回所有以“C”开头的集合。

是否可以提前一步并根据“last_updated”列进行过滤,这样我就可以获得昨天更新的所有“C”集合。

类似这样的事情

 db.getCollectionNames().filter(function(c){ return (db.c.find({update_on: "01-Dec-2014"}).count()
 > 1)});

尽管查询运行正常,但不是任何结果。

1 个答案:

答案 0 :(得分:1)

即使查询日期的集合中存在一条记录,您也需要返回true

其次,db.c已解析为值c,因此查找名为c的集合的计数,该集合不存在。要将c解析为变量,我们需要将其用作db[c]

下面修改后的代码会这样做:

db.getCollectionNames().filter(function(c){
 var rec = db[c].count({update_on: "01-Dec-2014"});
 return (rec > 0);
})