【问题标题】:Meteor Dynamic Collection ImplementationMeteor 动态采集实现
【发布时间】:2016-09-20 11:14:54
【问题描述】:

我正在我的应用程序中创建动态集合,但我无法获取、插入和更新该动态集合。

在不同集合中插入记录时创建的动态集合。 例如我有人员集合,想创建任务的动态集合来动态分离每个人的任务数据。

请帮助我如何在流星中实现相同的功能?

var collectionCache = {};
function create_collection(name) {
    collectionCache[name] = new Mongo.Collection(name);

    Meteor.publish(collectionCache[name], function() {
        return global[collectionCache[name]].find();
    });
}

我的收藏名称是task_parentID

现在数据应该保存在task_parentID 中,其中parentID 是该父级的唯一ID。

【问题讨论】:

  • 欢迎来到 Stack Overflow!你能分享一下你到目前为止的代码吗?

标签: mongodb meteor


【解决方案1】:

只是为了确认问题 - 当为 Person 创建集合时,您希望在 Task 集合中创建一个文档?

我会建议不要使用这种方法,并建议您关注this

解释: 创建两个集合 - TasksPersons

Persons 中插入的文档将具有唯一 ID。 Task 可以有这样的结构:

{ _id : //unique ID
//other fields
assignedTo: //_id of the Person to whom the task is assigned
}

assignedTo 将包含Persons 集合中文档的_id

当您需要排序时,只需调用订阅为Tasks.find({assignedTo: _persons_Id});,您将获得该人下的所有任务。

【讨论】:

  • 不,我想针对新的个人文档动态创建一个新的“task_persionId”集合。当我添加那个新人的任务时,那个人的任务数据应该放在那个集合 task_persionId 中。
  • 你检查我提到的链接了吗?它建议不要即时创建集合,因为 'meteor 不是为它设计的。更有效的方法是创建一个集合并分配一个区分 id,正如我在链接中提到的那样。
  • 是的,我已经浏览了那个链接。实际上,由于某些安全问题,我想在单独的集合中处理客户端数据,所以我需要 Meteor 中的此功能
  • 非常感谢您的回复。是的,我已经通过该链接,在此链接的帮助下,我能够创建动态集合,但由于集合名称是动态的,因此无法从该集合中插入和获取数据。我添加了流星开发扩展来检查迷你 mongo 数据库中是否包含相同的动态集合,但我发现它不包括在内。
猜你喜欢
  • 1970-01-01
  • 2016-09-06
  • 2014-08-15
  • 1970-01-01
  • 1970-01-01
  • 2017-04-03
  • 1970-01-01
  • 1970-01-01
  • 2013-03-25
相关资源
最近更新 更多