2015-04-17 108 views
2

我们在MongoDB里面有一些动态的集合,它们遵循像“XX_YY”这样的模式,但是可以有像这样的数百个集合。流星动态MongoDB集合

我们可以通过内部db.patterns收集查询得到的格局,但我不知道我们怎么能找到里面db.patterns thoose模式,然后查询thoose我们希望里面的MongoDB,MongoDB中一个例子是这样的

var collections = db.patterns.find(); 

db.getCollection(collections[0]).find(); 

我如何在MeteorJS中实现这一目标?

+0

你有没有在Meteor中尝试过任何东西? Mongo选择器和对象很容易操作,所以我并不真正看到你的阻塞问题。 –

+0

我试图为每个模式执行'new Mongo.Collection(name);',但我不知道它是否真的是动态的,例如,当一个模式被销毁或创建一个新模式时,我不会不知道它是如何影响的,或者它是否会被动,例如在应用程序已经运行时访问新创建的模式集合。 –

回答

2

您只需执行new Mongo.Collection("XX_YY")即可获得具有该名称的集合。

但是,如果您创建指向相同底层集合的多个Mongo.Collection,则可能会有后果。我从来没有任何理由这样做,所以我不知道。但是你可以使用一个高速缓存,以避免创建多个副本:

var collectionCache = {}; 

function getCollection(name) { 
    var cached = collectionCache[name] 
    if (!cached) { 
    cached = collectionCache[name] = new Mongo.Collection(name); 
    } 
    return cached; 
} 

我假设藏品的数量是有界的,所以你不必担心缓存得到随着时间的推移任意大。