【问题标题】:Iterate over multiple Meteor Collections迭代多个 Meteor 集合
【发布时间】:2015-08-23 18:42:19
【问题描述】:

我想在流星(服务器端)中迭代多个 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'....

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

【问题讨论】:

  • Check this out 确定您的收藏是否有任何价值或是否为空。

标签: javascript mongodb meteor


【解决方案1】:

您的集合数组包含很多字符串,但它应该包含一个集合对象列表。尝试将数组分配更改为:

var mycollections = [CollectionOne, CollectionTwo, CollectionThree];

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

【讨论】:

  • 是的,他们是Mongo.Collections。谢谢你。这解决了问题!
【解决方案2】:

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

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

在客户端window[ mycollections[i] ] 就可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-02
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    相关资源
    最近更新 更多