# Functions
Aggregate method will aggregate the collection and return the results accordingly.
CacheFirst method will try to find the object with given id in cache else it will query the db and save the result in cache.
ConvertID method will try to convert given string to BSON Object ID.
ConvertIDs method will try to convert given slice to BSON Object ID slice.
CountDocs method will count the documents in a table based on query supplied.
DateQuery will return the bson representation to query daterange between 2 time intervals.
DateQuery will return the bson representation to query daterange between 2 time intervals.
DeleteMany method will delete multiple documents based on the filter.
DeleteOne method will delete a single document based on the query.
EmptyMongoID method will return an objectID which is empty.
FindAll will try to find the documents based on the query.
FindByID method will try to find the document in collection with given id.
FindOne method will try to find the object with given query.
FindOneWithOpts method will try to find the object based on the query and options.
GetCacheKey method returns the cache key for model with id.
InsertMany method will insert documents in bulk inside the collection.
NewBufferWriter creates a writer object for all the subsequents calls.
NewMongoID method will return a new BSON Objec ID.
Query method will return cursor to the database.
Save method will save the document in db and update the cache.
ToJSON method will convert the model to json string.
UpdateMany will update the rows of the table based on the query supplied.
# Structs
AggregateOpts method is used for holding options while doing aggregation.
BufferWriter struct holds the elements docs and ids till they are flushed to database either manually using a timed event or when the count of the resource exceeds a certain threshold value.
FindOptions struct will contain the additional find information.
# Interfaces
Model interface is a generic type for all the models.