A Meteor package for publishing related documents from multiple collections using reactive joins.
Meteor Publish Composite is a Meteor package that provides a flexible way to publish related documents from multiple collections using reactive joins. It allows developers to define parent-child relationships between documents across different collections and publish them as a single reactive dataset. This solves the problem of manually joining data on the client side and ensures all published documents update automatically when underlying data changes.
Meteor developers building applications that require joining data from multiple MongoDB collections and publishing them reactively to the client. It's particularly useful for full-stack developers working on real-time applications with complex data relationships.
Developers choose Meteor Publish Composite because it provides a native Meteor solution for reactive joins without requiring external libraries or complex workarounds. Its flexible relationship mapping and support for nested publications make it ideal for publishing complex document trees while maintaining Meteor's reactive data flow.
Meteor.publishComposite provides a flexible way to publish a set of related documents from various collections using a reactive join
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows defining parent-child relationships based on custom logic, not just foreign keys, enabling dynamic joins like keyword-based related articles as shown in the README example.
Automatically updates published documents when additions, changes, or deletions occur in linked collections, maintaining Meteor's real-time data flow without client-side work.
Supports unlimited nesting levels for publishing multi-level document trees, useful for hierarchical data structures as demonstrated in the examples.
Enables asynchronous functions in publication definitions and children arrays, allowing dynamic data fetching and conditional logic, as highlighted in the async examples.
The README explicitly warns against publishing large sets of documents with many child publications, noting performance problems in high-traffic scenarios, making it unsuitable for scalable real-time apps.
Tests rely on sleep functions to wait for publications, making them unreliable and requiring manual refreshes, as admitted in the testing section, which hinders robust development workflows.
Using arrow functions in find callbreaks access to this.userId, forcing developers to use older function syntax and potentially introducing bugs in modern JavaScript codebases.