遍历多个Meteor集合

4
我希望能在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);
        }

I get this Error:

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

如何遍历集合/在循环中检查集合是否有任何值?

请查看此链接(https://dev59.com/rXLYa4cB1Zd3GeqPYoa0),以确保您的集合是否有任何值或为空。 - Greenhorn
2个回答

1

你的集合数组包含了很多字符串,但是它应该包含一系列的集合对象。尝试将数组赋值更改为:

var mycollections = [CollectionOne, CollectionTwo, CollectionThree];

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


是的,那些是Mongo.Collections。谢谢。问题解决了! - Bernd Loigge

1

mycollections[i] 会是字符串 "CollectionOne"。 使用 global[ mycollections[i] ] 获取实际集合的引用。

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接