Comparing version 1.0.0 to 1.0.1
@@ -60,11 +60,2 @@ /** | ||
var self = this; | ||
Object.defineProperty(this, "hint", { | ||
enumerable: true | ||
, get: function () { | ||
return this.internalHint; | ||
} | ||
, set: function (v) { | ||
this.internalHint = normalizeHintField(v); | ||
} | ||
}); | ||
} | ||
@@ -122,2 +113,3 @@ | ||
* - **safe** {true | {w:n, wtimeout:n} | {fsync:true}, default:false}, executes with a getLastError command returning the results of the command on MongoDB. | ||
* - **single** {Boolean, default:false}, removes the first document found. | ||
* | ||
@@ -144,7 +136,11 @@ * @param {Object} [selector] optional select, no selector is equivalent to removing all documents. | ||
selector = selector == null ? {} : selector; | ||
// Set up flags for the command, if we have a single document remove | ||
var flags = 0 | (options.single ? 1 : 0); | ||
// Create a delete command | ||
var deleteCommand = new DeleteCommand( | ||
this.db | ||
, this.db.databaseName + "." + this.collectionName | ||
, selector); | ||
, selector | ||
, flags); | ||
@@ -619,5 +615,5 @@ var self = this; | ||
// while 2.0.X does not not, making 2.0.X behaviour standard | ||
callback(self.db.wrap(result[0]), null); | ||
callback(self.db.wrap(result[0]), null, result[0]); | ||
} else { | ||
return callback(null, result[0].value); | ||
return callback(null, result[0].value, result[0]); | ||
} | ||
@@ -1497,2 +1493,15 @@ }); | ||
/** | ||
* @ignore | ||
*/ | ||
Object.defineProperty(Collection.prototype, "hint", { | ||
enumerable: true | ||
, get: function () { | ||
return this.internalHint; | ||
} | ||
, set: function (v) { | ||
this.internalHint = normalizeHintField(v); | ||
} | ||
}); | ||
/** | ||
* Expose. | ||
@@ -1499,0 +1508,0 @@ */ |
@@ -7,3 +7,3 @@ var BaseCommand = require('./base_command').BaseCommand, | ||
**/ | ||
var DeleteCommand = exports.DeleteCommand = function(db, collectionName, selector) { | ||
var DeleteCommand = exports.DeleteCommand = function(db, collectionName, selector, flags) { | ||
BaseCommand.call(this); | ||
@@ -22,2 +22,3 @@ | ||
this.flags = flags; | ||
this.collectionName = collectionName; | ||
@@ -84,7 +85,9 @@ this.selector = selector; | ||
// Write zero | ||
_command[_index++] = 0; | ||
_command[_index++] = 0; | ||
_command[_index++] = 0; | ||
_command[_index++] = 0; | ||
// Write the flags | ||
_command[_index + 3] = (this.flags >> 24) & 0xff; | ||
_command[_index + 2] = (this.flags >> 16) & 0xff; | ||
_command[_index + 1] = (this.flags >> 8) & 0xff; | ||
_command[_index] = this.flags & 0xff; | ||
// Adjust index | ||
_index = _index + 4; | ||
@@ -91,0 +94,0 @@ // Document binary length |
@@ -205,4 +205,10 @@ var utils = require('./connection_utils'), | ||
try { | ||
self.emit("message", self.buffer, self); | ||
var emitBuffer = self.buffer; | ||
// Reset state of buffer | ||
self.buffer = null; | ||
self.sizeOfMessage = 0; | ||
self.bytesRead = 0; | ||
self.stubBuffer = null; | ||
// Emit the buffer | ||
self.emit("message", emitBuffer, self); | ||
} catch(err) { | ||
@@ -217,8 +223,2 @@ var errorObject = {err:"socketHandler", trace:err, bin:buffer, parseState:{ | ||
} | ||
// Reset state of buffer | ||
self.buffer = null; | ||
self.sizeOfMessage = 0; | ||
self.bytesRead = 0; | ||
self.stubBuffer = null; | ||
} | ||
@@ -288,3 +288,3 @@ } else { | ||
try { | ||
self.emit("message", data, self); | ||
var emitBuffer = data; | ||
// Reset state of buffer | ||
@@ -297,3 +297,4 @@ self.buffer = null; | ||
data = new Buffer(0); | ||
// Emit the message | ||
self.emit("message", emitBuffer, self); | ||
} catch (err) { | ||
@@ -328,3 +329,3 @@ var errorObject = {err:"socketHandler", trace:err, bin:self.buffer, parseState:{ | ||
try { | ||
self.emit("message", data.slice(0, sizeOfMessage), self); | ||
var emitBuffer = data.slice(0, sizeOfMessage); | ||
// Reset state of buffer | ||
@@ -337,2 +338,4 @@ self.buffer = null; | ||
data = data.slice(sizeOfMessage); | ||
// Emit the message | ||
self.emit("message", emitBuffer, self); | ||
} catch (err) { | ||
@@ -339,0 +342,0 @@ var errorObject = {err:"socketHandler", trace:err, bin:self.buffer, parseState:{ |
@@ -137,103 +137,3 @@ var Connection = require('./connection').Connection, | ||
} | ||
// Auto Reconnect property | ||
Object.defineProperty(this, "autoReconnect", { enumerable: true | ||
, get: function () { | ||
return true; | ||
} | ||
}); | ||
// Get Read Preference method | ||
Object.defineProperty(this, "readPreference", { enumerable: true | ||
, get: function () { | ||
if(this._readPreference == null && this.readSecondary) { | ||
return Server.READ_SECONDARY; | ||
} else if(this._readPreference == null && !this.readSecondary) { | ||
return Server.READ_PRIMARY; | ||
} else { | ||
return this._readPreference; | ||
} | ||
} | ||
}); | ||
// Db Instances | ||
Object.defineProperty(this, "dbInstances", {enumerable:true | ||
, get: function() { | ||
var servers = this.allServerInstances(); | ||
return servers[0].dbInstances; | ||
} | ||
}) | ||
// Auto Reconnect property | ||
Object.defineProperty(this, "host", { enumerable: true | ||
, get: function () { | ||
if (this.primary != null) return this.primary.host; | ||
} | ||
}); | ||
Object.defineProperty(this, "port", { enumerable: true | ||
, get: function () { | ||
if (this.primary != null) return this.primary.port; | ||
} | ||
}); | ||
Object.defineProperty(this, "read", { enumerable: true | ||
, get: function () { | ||
return this.secondaries.length > 0 ? this.secondaries[0] : null; | ||
} | ||
}); | ||
// Get list of secondaries | ||
Object.defineProperty(this, "secondaries", {enumerable: true | ||
, get: function() { | ||
var keys = Object.keys(this._state.secondaries); | ||
var array = new Array(keys.length); | ||
// Convert secondaries to array | ||
for(var i = 0; i < keys.length; i++) { | ||
array[i] = this._state.secondaries[keys[i]]; | ||
} | ||
return array; | ||
} | ||
}); | ||
// Get list of all secondaries including passives | ||
Object.defineProperty(this, "allSecondaries", {enumerable: true | ||
, get: function() { | ||
return this.secondaries.concat(this.passives); | ||
} | ||
}); | ||
// Get list of arbiters | ||
Object.defineProperty(this, "arbiters", {enumerable: true | ||
, get: function() { | ||
var keys = Object.keys(this._state.arbiters); | ||
var array = new Array(keys.length); | ||
// Convert arbiters to array | ||
for(var i = 0; i < keys.length; i++) { | ||
array[i] = this._state.arbiters[keys[i]]; | ||
} | ||
return array; | ||
} | ||
}); | ||
// Get list of passives | ||
Object.defineProperty(this, "passives", {enumerable: true | ||
, get: function() { | ||
var keys = Object.keys(this._state.passives); | ||
var array = new Array(keys.length); | ||
// Convert arbiters to array | ||
for(var i = 0; i < keys.length; i++) { | ||
array[i] = this._state.passives[keys[i]]; | ||
} | ||
return array; | ||
} | ||
}); | ||
// Master connection property | ||
Object.defineProperty(this, "primary", { enumerable: true | ||
, get: function () { | ||
return this._state != null ? this._state.master : null; | ||
} | ||
}); | ||
// Enabled ha | ||
@@ -1193,5 +1093,140 @@ this.haEnabled = this.options['ha'] == null ? false : this.options['ha']; | ||
/** | ||
* Auto Reconnect property | ||
* @ignore | ||
*/ | ||
Object.defineProperty(ReplSet.prototype, "autoReconnect", { enumerable: true | ||
, get: function () { | ||
return true; | ||
} | ||
}); | ||
/** | ||
* Get Read Preference method | ||
* @ignore | ||
*/ | ||
Object.defineProperty(ReplSet.prototype, "readPreference", { enumerable: true | ||
, get: function () { | ||
if(this._readPreference == null && this.readSecondary) { | ||
return Server.READ_SECONDARY; | ||
} else if(this._readPreference == null && !this.readSecondary) { | ||
return Server.READ_PRIMARY; | ||
} else { | ||
return this._readPreference; | ||
} | ||
} | ||
}); | ||
/** | ||
* Db Instances | ||
* @ignore | ||
*/ | ||
Object.defineProperty(ReplSet.prototype, "dbInstances", {enumerable:true | ||
, get: function() { | ||
var servers = this.allServerInstances(); | ||
return servers[0].dbInstances; | ||
} | ||
}) | ||
/** | ||
* Just make compatible with server.js | ||
* @ignore | ||
*/ | ||
Object.defineProperty(ReplSet.prototype, "host", { enumerable: true | ||
, get: function () { | ||
if (this.primary != null) return this.primary.host; | ||
} | ||
}); | ||
/** | ||
* Just make compatible with server.js | ||
* @ignore | ||
*/ | ||
Object.defineProperty(ReplSet.prototype, "port", { enumerable: true | ||
, get: function () { | ||
if (this.primary != null) return this.primary.port; | ||
} | ||
}); | ||
/** | ||
* Get status of read | ||
* @ignore | ||
*/ | ||
Object.defineProperty(ReplSet.prototype, "read", { enumerable: true | ||
, get: function () { | ||
return this.secondaries.length > 0 ? this.secondaries[0] : null; | ||
} | ||
}); | ||
/** | ||
* Get list of secondaries | ||
* @ignore | ||
*/ | ||
Object.defineProperty(ReplSet.prototype, "secondaries", {enumerable: true | ||
, get: function() { | ||
var keys = Object.keys(this._state.secondaries); | ||
var array = new Array(keys.length); | ||
// Convert secondaries to array | ||
for(var i = 0; i < keys.length; i++) { | ||
array[i] = this._state.secondaries[keys[i]]; | ||
} | ||
return array; | ||
} | ||
}); | ||
/** | ||
* Get list of all secondaries including passives | ||
* @ignore | ||
*/ | ||
Object.defineProperty(ReplSet.prototype, "allSecondaries", {enumerable: true | ||
, get: function() { | ||
return this.secondaries.concat(this.passives); | ||
} | ||
}); | ||
/** | ||
* Get list of arbiters | ||
* @ignore | ||
*/ | ||
Object.defineProperty(ReplSet.prototype, "arbiters", {enumerable: true | ||
, get: function() { | ||
var keys = Object.keys(this._state.arbiters); | ||
var array = new Array(keys.length); | ||
// Convert arbiters to array | ||
for(var i = 0; i < keys.length; i++) { | ||
array[i] = this._state.arbiters[keys[i]]; | ||
} | ||
return array; | ||
} | ||
}); | ||
/** | ||
* Get list of passives | ||
* @ignore | ||
*/ | ||
Object.defineProperty(ReplSet.prototype, "passives", {enumerable: true | ||
, get: function() { | ||
var keys = Object.keys(this._state.passives); | ||
var array = new Array(keys.length); | ||
// Convert arbiters to array | ||
for(var i = 0; i < keys.length; i++) { | ||
array[i] = this._state.passives[keys[i]]; | ||
} | ||
return array; | ||
} | ||
}); | ||
/** | ||
* Master connection property | ||
* @ignore | ||
*/ | ||
Object.defineProperty(ReplSet.prototype, "primary", { enumerable: true | ||
, get: function () { | ||
return this._state != null ? this._state.master : null; | ||
} | ||
}); | ||
/** | ||
* @ignore | ||
*/ | ||
// Backward compatibility | ||
exports.ReplSetServers = ReplSet; |
@@ -83,60 +83,3 @@ var Connection = require('./connection').Connection, | ||
// Do we record server stats or not | ||
this.recordQueryStats = false; | ||
// Setters and getters | ||
Object.defineProperty(this, "autoReconnect", { enumerable: true | ||
, get: function () { | ||
return this.options['auto_reconnect'] == null ? false : this.options['auto_reconnect']; | ||
} | ||
}); | ||
Object.defineProperty(this, "connection", { enumerable: true | ||
, get: function () { | ||
return this.internalConnection; | ||
} | ||
, set: function(connection) { | ||
this.internalConnection = connection; | ||
} | ||
}); | ||
Object.defineProperty(this, "master", { enumerable: true | ||
, get: function () { | ||
return this.internalMaster; | ||
} | ||
, set: function(value) { | ||
this.internalMaster = value; | ||
} | ||
}); | ||
Object.defineProperty(this, "primary", { enumerable: true | ||
, get: function () { | ||
return this; | ||
} | ||
}); | ||
// Getter for query Stats | ||
Object.defineProperty(this, "queryStats", { enumerable: true | ||
, get: function () { | ||
return this._state.runtimeStats.queryStats; | ||
} | ||
}); | ||
Object.defineProperty(this, "runtimeStats", { enumerable: true | ||
, get: function () { | ||
return this._state.runtimeStats; | ||
} | ||
}); | ||
// Get Read Preference method | ||
Object.defineProperty(this, "readPreference", { enumerable: true | ||
, get: function () { | ||
if(this._readPreference == null && this.readSecondary) { | ||
return Server.READ_SECONDARY; | ||
} else if(this._readPreference == null && !this.readSecondary) { | ||
return Server.READ_PRIMARY; | ||
} else { | ||
return this._readPreference; | ||
} | ||
} | ||
}); | ||
this.recordQueryStats = false; | ||
}; | ||
@@ -726,2 +669,79 @@ | ||
*/ | ||
Object.defineProperty(Server.prototype, "autoReconnect", { enumerable: true | ||
, get: function () { | ||
return this.options['auto_reconnect'] == null ? false : this.options['auto_reconnect']; | ||
} | ||
}); | ||
/** | ||
* @ignore | ||
*/ | ||
Object.defineProperty(Server.prototype, "connection", { enumerable: true | ||
, get: function () { | ||
return this.internalConnection; | ||
} | ||
, set: function(connection) { | ||
this.internalConnection = connection; | ||
} | ||
}); | ||
/** | ||
* @ignore | ||
*/ | ||
Object.defineProperty(Server.prototype, "master", { enumerable: true | ||
, get: function () { | ||
return this.internalMaster; | ||
} | ||
, set: function(value) { | ||
this.internalMaster = value; | ||
} | ||
}); | ||
/** | ||
* @ignore | ||
*/ | ||
Object.defineProperty(Server.prototype, "primary", { enumerable: true | ||
, get: function () { | ||
return this; | ||
} | ||
}); | ||
/** | ||
* Getter for query Stats | ||
* @ignore | ||
*/ | ||
Object.defineProperty(Server.prototype, "queryStats", { enumerable: true | ||
, get: function () { | ||
return this._state.runtimeStats.queryStats; | ||
} | ||
}); | ||
/** | ||
* @ignore | ||
*/ | ||
Object.defineProperty(Server.prototype, "runtimeStats", { enumerable: true | ||
, get: function () { | ||
return this._state.runtimeStats; | ||
} | ||
}); | ||
/** | ||
* Get Read Preference method | ||
* @ignore | ||
*/ | ||
Object.defineProperty(Server.prototype, "readPreference", { enumerable: true | ||
, get: function () { | ||
if(this._readPreference == null && this.readSecondary) { | ||
return Server.READ_SECONDARY; | ||
} else if(this._readPreference == null && !this.readSecondary) { | ||
return Server.READ_PRIMARY; | ||
} else { | ||
return this._readPreference; | ||
} | ||
} | ||
}); | ||
/** | ||
* @ignore | ||
*/ | ||
exports.Server = Server; |
@@ -129,5 +129,7 @@ var QueryCommand = require('./commands/query_command').QueryCommand, | ||
} else { | ||
callback(err, items); | ||
var resultItems = items; | ||
items = null; | ||
self.items = []; | ||
// Returns items | ||
callback(err, resultItems); | ||
} | ||
@@ -162,6 +164,6 @@ }); | ||
process.nextTick(function(){ | ||
var s = new Date() | ||
// Fetch the next object until there is no more objects | ||
self.nextObject(function(err, item) { | ||
if(err != null) return callback(err, null); | ||
if(item != null) { | ||
@@ -175,4 +177,2 @@ callback(null, item); | ||
} | ||
item = null; | ||
}); | ||
@@ -452,6 +452,10 @@ }); | ||
// Add the new documents to the list of items | ||
self.items = self.items.concat(result.documents); | ||
// Add the new documents to the list of items, using forloop to avoid | ||
// new array allocations and copying | ||
for(var i = 0; i < result.documents.length; i++) { | ||
self.items.push(result.documents[i]); | ||
} | ||
result = null; | ||
self.nextObject(callback); | ||
result = null; | ||
}; | ||
@@ -519,2 +523,3 @@ | ||
self.items = self.items.concat(result.documents); | ||
// result = null; | ||
callback(null, self.items.shift()); | ||
@@ -521,0 +526,0 @@ } else if(self.tailable && !isDead) { |
@@ -47,17 +47,2 @@ var Binary = require('bson').Binary, | ||
this.internalPosition = 0; | ||
/** | ||
* The position of the read/write head | ||
* @name position | ||
* @lends Chunk# | ||
* @field | ||
*/ | ||
Object.defineProperty(this, "position", { enumerable: true | ||
, get: function () { | ||
return this.internalPosition; | ||
} | ||
, set: function(value) { | ||
this.internalPosition = value; | ||
} | ||
}); | ||
}; | ||
@@ -207,2 +192,17 @@ | ||
/** | ||
* The position of the read/write head | ||
* @name position | ||
* @lends Chunk# | ||
* @field | ||
*/ | ||
Object.defineProperty(Chunk.prototype, "position", { enumerable: true | ||
, get: function () { | ||
return this.internalPosition; | ||
} | ||
, set: function(value) { | ||
this.internalPosition = value; | ||
} | ||
}); | ||
/** | ||
* The default chunk size | ||
@@ -209,0 +209,0 @@ * @constant |
@@ -75,39 +75,2 @@ /** | ||
this.previousChunkSize = 0; | ||
/** | ||
* Returns the current chunksize of the file. | ||
* | ||
* @field chunkSize | ||
* @type {Number} | ||
* @getter | ||
* @setter | ||
* @property return number of bytes in the current chunkSize. | ||
*/ | ||
Object.defineProperty(this, "chunkSize", { enumerable: true | ||
, get: function () { | ||
return this.internalChunkSize; | ||
} | ||
, set: function(value) { | ||
if(!(this.mode[0] == "w" && this.position == 0 && this.uploadDate == null)) { | ||
this.internalChunkSize = this.internalChunkSize; | ||
} else { | ||
this.internalChunkSize = value; | ||
} | ||
} | ||
}); | ||
/** | ||
* The md5 checksum for this file. | ||
* | ||
* @field md5 | ||
* @type {Number} | ||
* @getter | ||
* @setter | ||
* @property return this files md5 checksum. | ||
*/ | ||
Object.defineProperty(this, "md5", { enumerable: true | ||
, get: function () { | ||
return this.internalMd5; | ||
} | ||
}); | ||
} | ||
@@ -1090,2 +1053,39 @@ | ||
/** | ||
* Returns the current chunksize of the file. | ||
* | ||
* @field chunkSize | ||
* @type {Number} | ||
* @getter | ||
* @setter | ||
* @property return number of bytes in the current chunkSize. | ||
*/ | ||
Object.defineProperty(GridStore.prototype, "chunkSize", { enumerable: true | ||
, get: function () { | ||
return this.internalChunkSize; | ||
} | ||
, set: function(value) { | ||
if(!(this.mode[0] == "w" && this.position == 0 && this.uploadDate == null)) { | ||
this.internalChunkSize = this.internalChunkSize; | ||
} else { | ||
this.internalChunkSize = value; | ||
} | ||
} | ||
}); | ||
/** | ||
* The md5 checksum for this file. | ||
* | ||
* @field md5 | ||
* @type {Number} | ||
* @getter | ||
* @setter | ||
* @property return this files md5 checksum. | ||
*/ | ||
Object.defineProperty(GridStore.prototype, "md5", { enumerable: true | ||
, get: function () { | ||
return this.internalMd5; | ||
} | ||
}); | ||
/** | ||
* @ignore | ||
@@ -1092,0 +1092,0 @@ * @api private |
{ "name" : "mongodb" | ||
, "description" : "A node.js driver for MongoDB" | ||
, "keywords" : ["mongodb", "mongo", "driver", "db"] | ||
, "version" : "1.0.0" | ||
, "version" : "1.0.1" | ||
, "author" : "Christian Amor Kvalheim <christkv@gmail.com>" | ||
@@ -61,3 +61,3 @@ , "contributors" : [ "Aaron Heckmann", | ||
, "dependencies" : { | ||
"bson": "0.0.4" | ||
"bson": "0.0.5" | ||
} | ||
@@ -64,0 +64,0 @@ , "devDependencies": { |
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
2347271
42
9950
5
+ Addedbson@0.0.5(transitive)
- Removedbson@0.0.4(transitive)
Updatedbson@0.0.5