While FilesCollection has a direct reference to a Mongo.Collection
,
the Mongo.Collection
has a back-reference to the FilesCollection itself.
The reference chain is as the following:
const imagesCollection = new FilesCollection({collectionName: 'images'});
// get the underlying Mongo.Collection
const collection = imagesCollection.collection;
// get the 'parent' FilesCollection
// of this collection instance
const parent = collection.filesCollection;
// returns true
console.log(parent === imagesCollection);
In Meteor for Mongo.Collection
instances management, we suggest to use dburles:mongo-collection-instances.
It allows to retrieve Mongo.Collection
instances by its name in any module or file.
Note: This package comes with no dependency to dburles:mongo-collection-instances
.
To make use of it, install it to your Meteor project first.
meteor add dburles:mongo-collection-instances
Then initialize FilesCollection, which itself will create a new Mongo.Collection
, that is automatically added to a hidden Mongo.Collection
instances list.
const imagesCollection = new FilesCollection({collectionName: 'images'});
To retrieve FilesCollection use - Mongo.Collection.get('collectionName')
:
const ImagesCollection = Mongo.Collection.get('images');
const imagesCollection = ImagesCollection.filesCollection;
This simplified example shows, how to make use of that technique in your own implementation.
Assume having a map of all Mongo.Collection
instances:
const collectionsMap = {};
Since you may not want to store the FilesCollection instance (because it is not a Mongo.Collection
), you can still reference the underlying Mongo.Collection:
const imagesCollection = new FilesCollection({collectionName: 'images'});
collectionsMap.images = imagesCollection.collection;
Access the FilesCollection by reference:
const imagesCollection = collectionsMap.images.filesCollection;