我想在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'....
如果集合中有任何值,我如何迭代集合/检查循环?
答案 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] ]
就是它。