迭代多个流星集合

时间:2015-06-09 05:33:40

标签: javascript mongodb meteor

我想在meteor(服务器端)中迭代多个Mongo集合。首先,我想检查一个集合是否有任何文件。

到目前为止我的代码:

     var isEmptyCollection = function(name) {
          if(name.find().count() === 0) {
             return true
          } else {
             return false
          }
        };

        var mycollections = ["CollectionOne", "CollectionTwo", "CollectionThree"];


        for (var i = 0; i < mycollections.length; i++) {
            if (isEmptyCollection(mycollections[i])) {
        } else {
            var data = mycollections[i].find({},{fieldOne: 1}).fetch();
            console.log(data);
        }

我收到此错误:

    TypeError: Object CollectionOne has no method 'find'....

如果集合中有任何值,我如何迭代集合/检查循环?

2 个答案:

答案 0 :(得分:1)

您的集合数组包含许多字符串,但它应包含集合对象列表。尝试将数组赋值更改为:

var mycollections = [CollectionOne, CollectionTwo, CollectionThree];

我假设您已使用Mongo.Collection定义了这些内容。

答案 1 :(得分:1)

mycollections[i]将是字符串“CollectionOne”。 使用global[ mycollections[i] ]获取对实际集合的引用。

例如:global[ mycollections[i] ].find().count()

在客户端window[ mycollections[i] ]就是它。