Meteor, define collections dynamically

2019-01-29 00:17发布

问题:

We are working on an app and need to be able to create new Mongo collections on the fly. Currently we have code such as this:

@Global = new Meteor.Collection('global')

We have a document in this mongo collections that looks like this:

{ "title" : "room_list", "room_list" : ['chat1', 'chat2'], ... }

Now I want to set up some type of loop or construct that would basically create the following

@chat1 = new Meteor.Collection('chat1')
@chat2 = new Meteor.Collection('chat2')

We are seeming to need this type of functionality to be able to create new collections of data on the fly.

We are looking into some type of dynamic variable declaration or is there a better way to dynamically create new meteor collections?

回答1:

In most instances, you probably don't want to create multiple collections, but instead use one collection and send views of it to clients depending on their subscription.

You may want to check out the https://github.com/mizzao/meteor-partitioner package I've built which is designed especially for this purpose, and includes an example for how to do this for multiple chat rooms. You can also see https://github.com/mizzao/CrowdMapper for an implemented example.