2017-02-07 7 views
2

Я пытаюсь опубликовать некоторые данные, используя meteorhacks: агрегат:meteorhacks: суммарная ошибка

Meteor.publish('alleNascholingen',function() { 
var self = this; 

var nascholingenOverzicht = nascholingenCollectie.aggregate([ 
    //{$match: {creatorId: this.userId}}, 
    //{$project: {naam: 1, familienaam:1, nascholingen:1}}, 
    { $unwind : "$nascholingen" }, 
    { $sort: { 
     "nascholingen.inschrijfMoment": -1 
    }} 
    ]); 

_.each(nascholingenOverzicht, function(parent){ 
    _.each(parent, function(child){ 
     self.added('selectie', child._id, child); 
    }); 
}); 


self.ready() 
}); 

У меня есть две коллекции, один для хранения агрегированных данных:

nascholingenCollectie = new Mongo.Collection('nascholingen'); 
nascholingenSelectie = new Mongo.Collection('selectie'); 

На моем шаблоне I подписаться на данные:

Template.nascholingBeheer.onCreated(function() { 
let self = Template.instance(); 

    self.subscribe('alleNascholingen', function() { 
     setTimeout(function() { 

     }, 300) 
    }) 

}) 
}); 

Я получаю следующее сообщение об ошибке в моей хромированной консоли:

collection.js:173 Uncaught Error: Expected to find a document to change 
at Object.update (http://localhost:3000/packages/mongo.js?hash=c4281c0ff989ebee020f59f5a7b0735053cea5f7:246:29) 
at Object.store.(anonymous function) [as update] (http://localhost:3000/packages/ddp-client.js?hash=bc32a166cd269e06a394f9418e0024d805bab379:3613:48) 
at http://localhost:3000/packages/ddp-client.js?hash=bc32a166cd269e06a394f9418e0024d805bab379:4441:19 
at Array.forEach (native) 
at Function._.each._.forEach (http://localhost:3000/packages/underscore.js?hash=cde485f60699ff9aced3305f70189e39c665183c:149:11) 
at http://localhost:3000/packages/ddp-client.js?hash=bc32a166cd269e06a394f9418e0024d805bab379:4440:13 
at Function._.each._.forEach (http://localhost:3000/packages/underscore.js?hash=cde485f60699ff9aced3305f70189e39c665183c:157:22) 
at Connection._performWrites (http://localhost:3000/packages/ddp-client.js?hash=bc32a166cd269e06a394f9418e0024d805bab379:4437:9) 
at Connection._flushBufferedWrites (http://localhost:3000/packages/ddp-client.js?hash=bc32a166cd269e06a394f9418e0024d805bab379:4423:10) 
at Connection._livedata_data (http://localhost:3000/packages/ddp-client.js?hash=bc32a166cd269e06a394f9418e0024d805bab379:4391:12) 

Что я здесь делаю неправильно?

ответ

2

Вы не можете использовать агрегацию в публикации Метеор, только в методе Метеор. Чтобы обойти это, вы можете рассмотреть возможность использования этого package (отказ от ответственности: я автор).

+0

Ну, странно то, что он имел обыкновение работать, как это ... Но как-то я скопировал мои файлы в новую папку, и вдруг эта ошибка возникла. Я использовал [это] (http://joshowens.me/using-mongodb-aggregations-to-power-a-meteor-js-publication/) руководство для этого. –

1

Моя плохо ... Я нашел ошибку:

_.each(nascholingenOverzicht, function(parent){ 
_.each(parent, function(child){ 
    self.added('selectie', child._id, child); 
}); 
}); 

должно быть:

_.each(nascholingenOverzicht, function(parent){ 

    self.added('selectie', parent._id, parent); 

}); 

 Смежные вопросы

  • Нет связанных вопросов^_^