mirror of
https://github.com/mgerb/mywebsite
synced 2026-01-12 18:52:50 +00:00
93 lines
3.4 KiB
JavaScript
93 lines
3.4 KiB
JavaScript
"use strict";
|
|
|
|
var inherits = require('util').inherits
|
|
, f = require('util').format
|
|
, EventEmitter = require('events').EventEmitter;
|
|
|
|
/**
|
|
* Creates a new Authentication Session
|
|
* @class
|
|
* @param {object} [options] Options for the session
|
|
* @param {{Server}|{ReplSet}|{Mongos}} topology The topology instance underpinning the session
|
|
*/
|
|
var Session = function(options, topology) {
|
|
this.options = options;
|
|
this.topology = topology;
|
|
|
|
// Add event listener
|
|
EventEmitter.call(this);
|
|
}
|
|
|
|
inherits(Session, EventEmitter);
|
|
|
|
/**
|
|
* Execute a command
|
|
* @method
|
|
* @param {string} ns The MongoDB fully qualified namespace (ex: db1.collection1)
|
|
* @param {object} cmd The command hash
|
|
* @param {object} [options.readPreference] Specify read preference if command supports it
|
|
* @param {object} [options.connection] Specify connection object to execute command against
|
|
* @param {opResultCallback} callback A callback function
|
|
*/
|
|
Session.prototype.command = function(ns, cmd, options, callback) {
|
|
this.topology.command(ns, cmd, options, callback);
|
|
}
|
|
|
|
/**
|
|
* Insert one or more documents
|
|
* @method
|
|
* @param {string} ns The MongoDB fully qualified namespace (ex: db1.collection1)
|
|
* @param {array} ops An array of documents to insert
|
|
* @param {boolean} [options.ordered=true] Execute in order or out of order
|
|
* @param {object} [options.writeConcern={}] Write concern for the operation
|
|
* @param {opResultCallback} callback A callback function
|
|
*/
|
|
Session.prototype.insert = function(ns, ops, options, callback) {
|
|
this.topology.insert(ns, ops, options, callback);
|
|
}
|
|
|
|
/**
|
|
* Perform one or more update operations
|
|
* @method
|
|
* @param {string} ns The MongoDB fully qualified namespace (ex: db1.collection1)
|
|
* @param {array} ops An array of updates
|
|
* @param {boolean} [options.ordered=true] Execute in order or out of order
|
|
* @param {object} [options.writeConcern={}] Write concern for the operation
|
|
* @param {opResultCallback} callback A callback function
|
|
*/
|
|
Session.prototype.update = function(ns, ops, options, callback) {
|
|
this.topology.update(ns, ops, options, callback);
|
|
}
|
|
|
|
/**
|
|
* Perform one or more remove operations
|
|
* @method
|
|
* @param {string} ns The MongoDB fully qualified namespace (ex: db1.collection1)
|
|
* @param {array} ops An array of removes
|
|
* @param {boolean} [options.ordered=true] Execute in order or out of order
|
|
* @param {object} [options.writeConcern={}] Write concern for the operation
|
|
* @param {opResultCallback} callback A callback function
|
|
*/
|
|
Session.prototype.remove = function(ns, ops, options, callback) {
|
|
this.topology.remove(ns, ops, options, callback);
|
|
}
|
|
|
|
/**
|
|
* Perform one or more remove operations
|
|
* @method
|
|
* @param {string} ns The MongoDB fully qualified namespace (ex: db1.collection1)
|
|
* @param {{object}|{Long}} cmd Can be either a command returning a cursor or a cursorId
|
|
* @param {object} [options.batchSize=0] Batchsize for the operation
|
|
* @param {array} [options.documents=[]] Initial documents list for cursor
|
|
* @param {boolean} [options.tailable=false] Tailable flag set
|
|
* @param {boolean} [options.oplogReply=false] oplogReply flag set
|
|
* @param {boolean} [options.awaitdata=false] awaitdata flag set
|
|
* @param {boolean} [options.exhaust=false] exhaust flag set
|
|
* @param {boolean} [options.partial=false] partial flag set
|
|
* @param {opResultCallback} callback A callback function
|
|
*/
|
|
Session.prototype.cursor = function(ns, cmd, options) {
|
|
return this.topology.cursor(ns, cmd, options);
|
|
}
|
|
|
|
module.exports = Session; |