Socket
Socket
Sign inDemoInstall

mongodb

Package Overview
Dependencies
Maintainers
1
Versions
562
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mongodb - npm Package Compare versions

Comparing version 1.1.6 to 1.1.7

1

lib/mongodb/collection.js

@@ -727,2 +727,3 @@ /**

* - **tailableRetryInterval** {Number, default:100}, specify the miliseconds between getMores on tailable cursor.
* - **numberOfRetries** {Number, default:5}, specify the number of times to retry the tailable cursor.
* - **awaitdata** {Boolean, default:false} allow the cursor to wait for data, only applicable for tailable cursor.

@@ -729,0 +730,0 @@ * - **exhaust** {Boolean, default:false} have the server send all the documents at once as getMore packets, not recommended.

@@ -478,2 +478,8 @@ var Connection = require('./connection').Connection,

// Make sure we have the right reference
if (self._state.addresses[instanceServer.host + ":" + instanceServer.port] != instanceServer) {
// Close the connection before deleting
if(self._state.addresses[instanceServer.host + ":" + instanceServer.port])
self._state.addresses[instanceServer.host + ":" + instanceServer.port].close();
}
delete self._state.addresses[instanceServer.host + ":" + instanceServer.port];

@@ -560,2 +566,9 @@ self._state.addresses[me] = instanceServer;

// Set the server
if (addresses[server.host + ":" + server.port] != server) {
if (addresses[server.host + ":" + server.port]) {
// Close the connection before deleting
addresses[server.host + ":" + server.port].close();
}
delete addresses[server.host + ":" + server.port];
}
addresses[server.host + ":" + server.port] = server;

@@ -664,4 +677,5 @@ // Connect

var candidateServers = [];
for(var key in addresses) {
candidateServers.push(addresses[key]);
var keys = Object.keys(addresses);
for(var i = 0; i < keys.length; i++) {
candidateServers.push(addresses[keys[i]]);
}

@@ -948,7 +962,12 @@ // Let's connect to the first one on the list

if(this._state && this._state.addresses) {
for(var key in this._state.addresses) {
this._state.addresses[key].close();
var keys = Object.keys(this._state.addresses);
// Iterate over all server instances
for(var i = 0; i < keys.length; i++) {
this._state.addresses[keys[i]].close();
}
}
// If we have a strategy stop it
if(this.strategyInstance) this.strategyInstance.stop();
// If it's a callback

@@ -955,0 +974,0 @@ if(typeof callback == 'function') callback(null, null);

83

lib/mongodb/connection/strategies/ping_strategy.js

@@ -10,2 +10,3 @@ var Server = require("../server").Server;

this.state = 'disconnected';
this.pingInterval = 5000;
// Class instance

@@ -17,3 +18,7 @@ this.Db = require("../../db").Db;

PingStrategy.prototype.start = function(callback) {
// already running?
if ('connected' == this.state) return;
this.state = 'connected';
// Start ping server

@@ -27,4 +32,5 @@ this._pingServer(callback);

this.state = 'disconnected';
// Call the callback
callback(null, null);
// optional callback
callback && callback(null, null);
}

@@ -125,55 +131,54 @@

if(self.state == 'disconnected') return;
var addresses = self.replicaset._state != null && self.replicaset._state.addresses != null ? self.replicaset._state.addresses : null;
var addresses = self.replicaset._state.addresses;
// Grab all servers
var serverKeys = Object.keys(addresses);
// Number of server entries
var numberOfEntries = serverKeys.length;
// We got keys
for(var i = 0; i < serverKeys.length; i++) {
// We got a server instance
var server = addresses[serverKeys[i]];
// Create a new server object, avoid using internal connections as they might
// be in an illegal state
new function(serverInstance) {
var server = new Server(serverInstance.host, serverInstance.port, {poolSize:1, timeout:500, auto_reconnect:false});
var options = { poolSize: 1, timeout: 500, auto_reconnect: false };
var server = new Server(serverInstance.host, serverInstance.port, options);
var db = new self.Db(self.replicaset.db.databaseName, server);
// Add error listener
db.on("error", function(err) {
// Adjust the number of checks
numberOfEntries = numberOfEntries - 1;
// Close connection
db.close();
// If we are done with all results coming back trigger ping again
if(numberOfEntries == 0 && self.state == 'connected') {
setTimeout(pingFunction, 1000);
}
})
db.on("error", done);
// Open the db instance
db.open(function(err, p_db) {
if(err != null) {
db.close();
} else {
// Startup time of the command
var startTime = new Date().getTime();
// Execute ping on this connection
p_db.executeDbCommand({ping:1}, function(err, result) {
// Adjust the number of checks
numberOfEntries = numberOfEntries - 1;
// Get end time of the command
var endTime = new Date().getTime();
// Store the ping time in the server instance state variable, if there is one
if(serverInstance != null && serverInstance.runtimeStats != null && serverInstance.isConnected()) {
serverInstance.runtimeStats['pingMs'] = (endTime - startTime);
}
db.open(function(err, _db) {
if(err) return done(_db);
// Close server
p_db.close();
// If we are done with all results coming back trigger ping again
if(numberOfEntries == 0 && self.state == 'connected') {
setTimeout(pingFunction, 1000);
}
})
// Startup time of the command
var startTime = Date.now();
// Execute ping on this connection
db.executeDbCommand({ping:1}, {failFast:true}, function() {
if(null != serverInstance.runtimeStats && serverInstance.isConnected()) {
serverInstance.runtimeStats['pingMs'] = Date.now() - startTime;
}
done(_db);
})
})
function done (_db) {
// Close connection
_db.close(true);
// Adjust the number of checks
numberOfEntries--;
// If we are done with all results coming back trigger ping again
if(0 === numberOfEntries && 'connected' == self.state) {
setTimeout(pingFunction, self.pingInterval);
}
})
}
}(server);

@@ -180,0 +185,0 @@ }

@@ -14,6 +14,3 @@ // The Statistics strategy uses the measure of each end-start time for each

StatisticsStrategy.prototype.stop = function(callback) {
// Remove reference to replicaset
this.replicaset = null;
// Perform callback
callback(null, null);
callback && callback(null, null);
}

@@ -20,0 +17,0 @@

@@ -22,3 +22,3 @@ /**

if(!(this instanceof CursorStream)) return new CursorStream(cursor);
Stream.call(this);

@@ -113,8 +113,11 @@

* Resumes the stream.
*
*
* @api public
*/
CursorStream.prototype.resume = function () {
this.paused = false;
this._next();
var self = this;
process.nextTick(function() {
self.paused = false;
self._next();
})
}

@@ -125,3 +128,3 @@

* cursor. No more events will be emitted.
*
*
* @api public

@@ -128,0 +131,0 @@ */

@@ -15,6 +15,6 @@ var GridStore = require('./gridstore').GridStore,

if(!(this instanceof Grid)) return new Grid(db, fsName);
this.db = db;
this.fsName = fsName == null ? GridStore.DEFAULT_ROOT_COLLECTION : fsName;
}
}

@@ -37,5 +37,5 @@ /**

options['root'] = options['root'] == null ? this.fsName : options['root'];
// Return if we don't have a buffer object as data
if(!(Buffer.isBuffer(data))) return callback(new Error("Data object must be a buffer object"), null);
if(!(Buffer.isBuffer(data))) return callback(new Error("Data object must be a buffer object"), null);
// Get filename if we are using it

@@ -55,3 +55,3 @@ var filename = options['filename'];

})
})
})
})

@@ -70,3 +70,3 @@ }

// Validate that we have a valid ObjectId
if(!(id instanceof ObjectID)) return callback(new Error("Not a valid ObjectID", null));
if(!(id instanceof ObjectID)) return callback(new Error("Not a valid ObjectID", null));
// Create gridstore

@@ -76,7 +76,7 @@ var gridStore = new GridStore(this.db, id, "r", {root:this.fsName});

if(err) return callback(err, null);
// Return the data
gridStore.read(function(err, data) {
return callback(err, data)
});
});
})

@@ -95,3 +95,3 @@ }

// Validate that we have a valid ObjectId
if(!(id instanceof ObjectID)) return callback(new Error("Not a valid ObjectID", null));
if(!(id instanceof ObjectID)) return callback(new Error("Not a valid ObjectID", null));
// Create gridstore

@@ -98,0 +98,0 @@ GridStore.unlink(this.db, id, {root:this.fsName}, function(err, result) {

@@ -194,3 +194,3 @@ /**

self.internalMd5 = doc.md5;
} else {
} else if (self.mode != 'r') {
self.fileId = self.fileId == null ? new ObjectID() : self.fileId;

@@ -200,2 +200,5 @@ self.contentType = exports.GridStore.DEFAULT_CONTENT_TYPE;

self.length = 0;
} else {
self.length = 0;
return error(new Error((self.referenceBy == REFERENCE_BY_ID ? self.fileId.toHexString() : self.filename) + " does not exist", self));
}

@@ -202,0 +205,0 @@

{ "name" : "mongodb"
, "description" : "A node.js driver for MongoDB"
, "keywords" : ["mongodb", "mongo", "driver", "db"]
, "version" : "1.1.6"
, "version" : "1.1.7"
, "author" : "Christian Amor Kvalheim <christkv@gmail.com>"

@@ -6,0 +6,0 @@ , "contributors" : [ "Aaron Heckmann",

@@ -30,2 +30,3 @@ Up to date documentation

```javascript
var client = new Db('test', new Server("127.0.0.1", 27017, {})),

@@ -53,2 +54,3 @@ test = function (err, collection) {

});
```

@@ -62,2 +64,3 @@ Data types

```javascript
// Get the objectID type

@@ -69,5 +72,7 @@ var ObjectID = require('mongodb').ObjectID;

collection.findOne({_id: idString}, console.log) // wrong! callback gets undefined
```
Here are the constructors the non-Javascript BSON primitive types:
```javascript
// Fetch the library

@@ -86,2 +91,3 @@ var mongo = require('mongodb');

new mongo.Double(number) // Force double storage
```

@@ -93,2 +99,3 @@ The C/C++ bson parser/serializer

```javascript
// using native_parser:

@@ -98,2 +105,3 @@ var client = new Db('integration_tests_20',

{native_parser:true});
```

@@ -141,2 +149,3 @@ The C++ parser uses the js objects both for serialization and deserialization.

```javascript
// Custom factory (need to provide a 12 byte array);

@@ -166,2 +175,3 @@ CustomPKFactory = function() {}

});
```

@@ -175,2 +185,3 @@ Strict mode

```javascript
var error_client = new Db('integration_tests_', new Server("127.0.0.1", 27017, {auto_reconnect: false}), {strict:true});

@@ -193,2 +204,3 @@ test.assertEquals(true, error_client.strict);

});
```

@@ -216,2 +228,3 @@ Documentation

```javascript
var cursor = collection.find(query, [fields], options);

@@ -225,2 +238,3 @@ cursor.sort(fields).limit(n).skip(m).

cursor.rewind() // reset the cursor to its initial state.
```

@@ -257,2 +271,3 @@ Useful chainable methods of cursor. These can optionally be options of `find` instead of method calls:

```javascript
var mongodb = require('mongodb');

@@ -267,2 +282,3 @@ var server = new mongodb.Server("127.0.0.1", 27017, {});

});
```

@@ -274,3 +290,5 @@ Insert

```javascript
collection.insert(docs, options, [callback]);
```

@@ -285,2 +303,3 @@ where `docs` can be a single document or an array of documents.

```javascript
var mongodb = require('mongodb');

@@ -299,2 +318,3 @@ var server = new mongodb.Server("127.0.0.1", 27017, {});

});
```

@@ -317,3 +337,5 @@ Note that there's no reason to pass a callback to the insert or update commands

```javascript
collection.update(criteria, objNew, options, [callback]);
```

@@ -328,2 +350,3 @@ Useful options:

```javascript
var mongodb = require('mongodb');

@@ -340,2 +363,3 @@ var server = new mongodb.Server("127.0.0.1", 27017, {});

});
```

@@ -354,3 +378,5 @@ Find and modify

```javascript
collection.findAndModify(query, sort, update, options, callback)
```

@@ -373,2 +399,3 @@ The sort parameter is used to specify which object to operate on, if more than

```javascript
var mongodb = require('mongodb');

@@ -385,2 +412,3 @@ var server = new mongodb.Server("127.0.0.1", 27017, {});

});
```

@@ -387,0 +415,0 @@ Save

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc