2016-09-20 152 views
0

我在我的应用程序中创建动态收集,但我无法获取,插入和更新该动态收集。流星动态收集实施

当我在不同的集合中插入记录时创建的动态集合。 例如我有个人收藏,并且想要创建动态收集任务以动态分离每个人的任务数据。

请帮我一下,我该如何在流星中实现它?

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。

+3

欢迎来到Stack Overflow!你能分享一下迄今为止的代码吗? – alexbt

回答

0

只是为了确认问题 - 您想在Task集合中创建一个文档,以便为该集合创建该集合Person

我会劝告反对thie的做法,并会建议您按照this

为了解释: 创建两个集合 - TasksPersons

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

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

assignedTo将包含文档的_idPersons收藏。

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

+0

否我想根据新的Person文档动态创建一个新的“task_persionId”集合。当我添加新人的任务时,该人员的任务数据应该在该集合task_persionId中。 – sakshi

+0

你检查了我提到的链接吗?它建议不要在飞行中创建集合,因为“流星”不是为它设计的。更有效的方法是创建一个集合并分配一个有区别的id,就像我之前提到的那样,并且也在链接中。 – Ankit

+0

是的,我已经通过该链接。其实我想处理客户端数据在单独收集由于一些安全问题,所以我需要这个功能在流星 – sakshi