从meteor(mongodb)中的document._id中查找集合名称

时间:2014-03-10 19:35:47

标签: mongodb meteor

从meteor中处理mongodb相关事物的语法看起来似乎总是需要知道文档的collection's nameupdate, insert, remove or anything

我想知道的是,是否可以从流星文档的collection's name字段中获取_id

如果您的文档的_id等于TNTco3bHzoSFMXKJT,则表示这意味着。现在知道您要查找_id collection document所在文档的{{1}}。这可以通过meteor实现mongodb或vanilla mongodb来实现吗?

2 个答案:

答案 0 :(得分:0)

取自official docs

  

idGeneration 字符串

     

在此集合中生成新文档的_id字段的方法。可能的值:

     

'STRING':随机字符串   'MONGO':随机Meteor.Collection.ObjectID值

     

默认的id生成技术是'STRING'。

您最好的选择是伪事务中的insert条记录,其中第二步是使用id和集合名称将其提供给参考集合。然后,您可以从中进行查找。

虽然构建你的find会花费很多,但如果你正在构建一个用户将创建任意数据模式的应用程序,那么这可能是值得探索的模式。

答案 1 :(得分:0)

您可以通过对所有集合执行findOne来实现此目的:

var collectionById = function(id) {
  return _.find(_.keys(this), function(name) {
    if (this[name] instanceof Meteor.Collection) {
      if (this[name].findOne(id)) {
        return true;
      }
    }
  });
};

我在客户端和服务器上测试了它,并且在全局环境中运行时似乎有效。