Боролись с этим очень долго; с моим приложением Meteor+ReactJS я хочу иметь реактивное соединение между MainCollection и SubCollection. И PublishComposite может быть именно тем, что мне нужно. Однако при обновлении SubCollection это не реактивно!
Кто-нибудь знает, как сделать реактивное соединение на стороне сервера с помощью метеора + реакция?
код сервера
import { publishComposite } from 'meteor/reywood:publish-composite';
Meteor.MainCollection('maincollection.pub.all', {
find: function () {
return MainCollection.find();
},
children: [
{
find: function (doc) {
return SubCollection.find(
{ mainCollectionId: doc._id },
{
sort: { createdAt: -1 }, limit: 1,
fields: {
completedAt: 1,
mainCollectionId: 1,
}
})
}
}
]
});
клиентский контейнер
export default createContainer(() => {
let mainCollectionSub = Meteor.subscribe('maincollection.pub.all');
options = {
transform: function (doc) {
doc.subcollection = SubCollection.findOne({
mainCollectionId: doc._id }, ).fetch();
return doc;
}
}
var maincollection = MainCollection.find({}, options).fetch();
return {
maincollection: MainCollection.find({}, options).fetch(),
}
}, MainCollectionView);