2014-04-06 1 views
5

В настоящее время я разрабатываю приложение Meteor, которое будет основываться на разных пакетах (возможно, созданных разными разработчиками).Namespaced Collections in Meteor

Мой вопрос в том, есть ли метеорный путь к коллекциям пространств имен, чтобы они не сталкивались с другими доступными коллекциями.

Например, у меня есть пакет, который использует коллекцию с именем «todos» и другой, который может также содержать коллекцию с именем «todos». Существует ли способ пространственного пространства имен этих коллекций (например, с их именем пакета)?

Я узнал, что есть возможность для MongoDB в разделяет пространства имен с «»: http://docs.mongodb.org/manual/faq/developers/#what-is-a-namespace-in-mongodb

Это также лучший способ коллекции пространств имен в Meteor?

Прибывая на Meteor с фонами Rails, я помню, что вы можете создавать двигатели с именами в рельсах (которые также создают таблицы с именами в базе данных). Что-то похожее в Метеор?

Ближайший я пришел был с этим вопросом я нашел: https://github.com/CollectionFS/Meteor-cfs-gridfs/issues/6

Заранее спасибо!

+1

Насколько я знаю, MongoDB не позволяет создавать коллекции с именами (кроме баз данных), и поэтому не Meteor. – imslavko

+0

Если вы не хотите, чтобы пространство имен было пронумеровано вручную в имени строки (например: «bobbyApp_questions» и «aliceApp_questions» - без разделения доступа или чего-либо еще) – imslavko

+0

Поэтому используйте соответствующие базы данных, если это необходимо. – imslavko

ответ

2

Использование периода в названии коллекции - прекрасная схема размещения имен для коллекций Meteor так же, как если бы вы использовали MongoDB в одиночку.

var TodoCollection = Meteor.Collection('packageName.todos'); 

Пакеты, такие как CollectionFS, используют эту технику, чтобы избежать конфликтов имен коллекций.

+0

Спасибо! Раньше я использовал такие вещи, как Meteor.Collection ('fooBarBaz') ;. Точечная нотация сделала ее намного яснее, и она также чувствует себя лучше. – pmuens