You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					152 lines
				
				3.3 KiB
			
		
		
			
		
	
	
					152 lines
				
				3.3 KiB
			| 
											3 years ago
										 | 'use strict'; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Module dependencies | ||
|  |  */ | ||
|  | 
 | ||
|  | var Collection = require('./collection'); | ||
|  | var utils = require('../utils'); | ||
|  | 
 | ||
|  | function NodeCollection(col) { | ||
|  |   this.collection = col; | ||
|  |   this.collectionName = col.collectionName; | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  |  * inherit from collection base class | ||
|  |  */ | ||
|  | 
 | ||
|  | utils.inherits(NodeCollection, Collection); | ||
|  | 
 | ||
|  | /** | ||
|  |  * find(match, options, function(err, docs)) | ||
|  |  */ | ||
|  | 
 | ||
|  | NodeCollection.prototype.find = function(match, options, cb) { | ||
|  |   this.collection.find(match, options, function(err, cursor) { | ||
|  |     if (err) return cb(err); | ||
|  | 
 | ||
|  |     try { | ||
|  |       cursor.toArray(cb); | ||
|  |     } catch (error) { | ||
|  |       cb(error); | ||
|  |     } | ||
|  |   }); | ||
|  | }; | ||
|  | 
 | ||
|  | /** | ||
|  |  * findOne(match, options, function(err, doc)) | ||
|  |  */ | ||
|  | 
 | ||
|  | NodeCollection.prototype.findOne = function(match, options, cb) { | ||
|  |   this.collection.findOne(match, options, cb); | ||
|  | }; | ||
|  | 
 | ||
|  | /** | ||
|  |  * count(match, options, function(err, count)) | ||
|  |  */ | ||
|  | 
 | ||
|  | NodeCollection.prototype.count = function(match, options, cb) { | ||
|  |   this.collection.count(match, options, cb); | ||
|  | }; | ||
|  | 
 | ||
|  | /** | ||
|  |  * distinct(prop, match, options, function(err, count)) | ||
|  |  */ | ||
|  | 
 | ||
|  | NodeCollection.prototype.distinct = function(prop, match, options, cb) { | ||
|  |   this.collection.distinct(prop, match, options, cb); | ||
|  | }; | ||
|  | 
 | ||
|  | /** | ||
|  |  * update(match, update, options, function(err[, result])) | ||
|  |  */ | ||
|  | 
 | ||
|  | NodeCollection.prototype.update = function(match, update, options, cb) { | ||
|  |   this.collection.update(match, update, options, cb); | ||
|  | }; | ||
|  | 
 | ||
|  | /** | ||
|  |  * update(match, update, options, function(err[, result])) | ||
|  |  */ | ||
|  | 
 | ||
|  | NodeCollection.prototype.updateMany = function(match, update, options, cb) { | ||
|  |   this.collection.updateMany(match, update, options, cb); | ||
|  | }; | ||
|  | 
 | ||
|  | /** | ||
|  |  * update(match, update, options, function(err[, result])) | ||
|  |  */ | ||
|  | 
 | ||
|  | NodeCollection.prototype.updateOne = function(match, update, options, cb) { | ||
|  |   this.collection.updateOne(match, update, options, cb); | ||
|  | }; | ||
|  | 
 | ||
|  | /** | ||
|  |  * replaceOne(match, update, options, function(err[, result])) | ||
|  |  */ | ||
|  | 
 | ||
|  | NodeCollection.prototype.replaceOne = function(match, update, options, cb) { | ||
|  |   this.collection.replaceOne(match, update, options, cb); | ||
|  | }; | ||
|  | 
 | ||
|  | /** | ||
|  |  * deleteOne(match, options, function(err[, result]) | ||
|  |  */ | ||
|  | 
 | ||
|  | NodeCollection.prototype.deleteOne = function(match, options, cb) { | ||
|  |   this.collection.deleteOne(match, options, cb); | ||
|  | }; | ||
|  | 
 | ||
|  | /** | ||
|  |  * deleteMany(match, options, function(err[, result]) | ||
|  |  */ | ||
|  | 
 | ||
|  | NodeCollection.prototype.deleteMany = function(match, options, cb) { | ||
|  |   this.collection.deleteMany(match, options, cb); | ||
|  | }; | ||
|  | 
 | ||
|  | /** | ||
|  |  * remove(match, options, function(err[, result]) | ||
|  |  */ | ||
|  | 
 | ||
|  | NodeCollection.prototype.remove = function(match, options, cb) { | ||
|  |   this.collection.remove(match, options, cb); | ||
|  | }; | ||
|  | 
 | ||
|  | /** | ||
|  |  * findAndModify(match, update, options, function(err, doc)) | ||
|  |  */ | ||
|  | 
 | ||
|  | NodeCollection.prototype.findAndModify = function(match, update, options, cb) { | ||
|  |   var sort = Array.isArray(options.sort) ? options.sort : []; | ||
|  |   this.collection.findAndModify(match, sort, update, options, cb); | ||
|  | }; | ||
|  | 
 | ||
|  | /** | ||
|  |  * var stream = findStream(match, findOptions, streamOptions) | ||
|  |  */ | ||
|  | 
 | ||
|  | NodeCollection.prototype.findStream = function(match, findOptions, streamOptions) { | ||
|  |   return this.collection.find(match, findOptions).stream(streamOptions); | ||
|  | }; | ||
|  | 
 | ||
|  | /** | ||
|  |  * var cursor = findCursor(match, findOptions) | ||
|  |  */ | ||
|  | 
 | ||
|  | NodeCollection.prototype.findCursor = function(match, findOptions) { | ||
|  |   return this.collection.find(match, findOptions); | ||
|  | }; | ||
|  | 
 | ||
|  | /** | ||
|  |  * aggregation(operators..., function(err, doc)) | ||
|  |  * TODO | ||
|  |  */ | ||
|  | 
 | ||
|  | /** | ||
|  |  * Expose | ||
|  |  */ | ||
|  | 
 | ||
|  | module.exports = exports = NodeCollection; |