2014-04-06 39 views
5

我目前正在開發一個Meteor應用程序,它將基於不同的包(可能由不同的開發人員創建)。Meteor中的命名空間集合

我的問題是,如果有一種流星命名空間集合的方式,以便它們不會與其他可用集合相沖突。

例如,我有一個包使用名爲'todos'的集合,另一個包含名爲'todos'的集合。有沒有辦法讓這些集合命名空間(例如,用它們的package-Name前置)?

我發現,有一個爲MongoDB中與命名空間的選項「」: http://docs.mongodb.org/manual/faq/developers/#what-is-a-namespace-in-mongodb

這也對流星命名收藏的最佳方式?我記得你可以在rails中創建命名空間的引擎(它也創建命名空間數據庫表)。流星中有類似的東西嗎?

我來最接近的是這個問題我已經找到:提前 https://github.com/CollectionFS/Meteor-cfs-gridfs/issues/6

謝謝!

+1

據我所知,MongoDB不允許你創建命名空間集合(數據庫除外),所以不是流星。 – imslavko

+0

除非您想在字符串名稱中手動命名空間(例如:「bobbyApp_questions」和「aliceApp_questions」 - 無訪問分隔或任何其他內容) – imslavko

+0

因此,如果合適,請使用單獨的數據庫。 – imslavko

回答

2

在集合名稱中使用句點對於Meteor集合來說是一個非常好的命名空間方案,就像它單獨使用MongoDB一樣。

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

包例如CollectionFS使用這種技術來避免集合名稱衝突。

+0

謝謝!事先我已經使用了諸如Meteor.Collection('fooBarBaz');之類的東西。點符號使得它更清晰,而且感覺更好。 – pmuens