【问题标题】:Meteor dynamic MongoDB CollectionsMeteor 动态 MongoDB 集合
【发布时间】:2015-04-17 19:03:08
【问题描述】:

我们在 MongoDB 中有一些动态的集合,它们遵循“XX_YY”之类的模式,但可以有数百个像 theese 这样的集合。

我们可以通过在 db.patterns 集合中查询来获取模式,但我不知道我们如何在 db.patterns 中找到这些模式,然后在 MongoDB 中查询我们想要的模式,MongoDB 中的示例是这样的

var collections = db.patterns.find();

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

如何在 MeteorJS 中实现这一点?

【问题讨论】:

  • 你有没有专门在 Meteor 中尝试过任何东西? Mongo 选择器和对象很容易操作,所以我看不出你的阻塞问题在哪里。
  • 我尝试为每个模式做new Mongo.Collection(name);,但我不知道这是否真的是动态的,例如,当一个模式被破坏或一个新的模式被创建时,我不知道'不知道它会如何影响或它是否会是反​​应性的,例如在应用程序已经运行时访问新创建的模式集合。

标签: javascript node.js mongodb meteor


【解决方案1】:

您可以通过 new Mongo.Collection("XX_YY") 获取具有该名称的集合。

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

var collectionCache = {};

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

我假设集合的数量是有限的,因此您不必担心缓存会随着时间的推移而变得任意大。

【讨论】:

    猜你喜欢
    • 2014-08-15
    • 2021-09-17
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 2015-02-02
    • 2016-03-30
    相关资源
    最近更新 更多