2016-06-25 224 views
0

我正在編寫我自己的包,我需要依靠dburles:mongo-collection-instances。我知道集合實例包將修改Mongo.Collection對象,但我看不到在我的自定義包中使用Mongo.Collection.getAll()不能使用其他流星包內的其他流星包

var collections = Mongo.Collection.getAll(); // Doesn't work 
console.log('collections', collections); 

package.js

Package.onUse(function(api) { 
    api.versionsFrom('1.0.3.1'); 
    api.use('jquery'); 
    api.use('mongo'); 
    api.use('session'); 
    api.use('matb33:collection-hooks'); 
    api.use('dburles:mongo-collection-instances'); 
    api.use('accounts-base', ['client', 'server'], {weak: true}); 
... 
}); 
+0

您的軟件包代碼很可能在任何集合創建之前運行。您可以嘗試在Meteor.startup上運行它,但是否成功取決於創建集合的代碼何時運行。 – MasterAM

回答

0

不知道你如何組織你的包?我沒有使用過dburles收集實例,但這裏是結構的正確方法:

/packagefolder 
both.js 
package.js 

在你package.js

Package.describe({ 
summary: 'mycollection collection', 
    name: 'mycollection:mycollection', 
    version: '0.0.1' 
}); 

Package.onUse(function (api) { 
    api.use('jquery'); 
    api.use('mongo'); 
    api.use('session'); 
    api.use('matb33:collection-hooks'); 
    api.use('dburles:mongo-collection-instances'); 
    api.use('accounts-base', ['client', 'server'], {weak: true}); 

    api.addFiles([ 
    'both.js' 
    ], ['server', 'client']); 

    api.export('MyCollection'); 
}); 

我建議aldeed收集包..這裏是一個both.js演示

MyCollection = new Mongo.Collection('mycollection'); 

Schemas = {}; 
Schemas.MyCollection = new SimpleSchema({ 
    profileId: { 
    type: String 
    }, 
    date: { 
    type: Date 
    } 
}); 

MyCollection.attachSchema(Schemas.MyCollection);