Skip to content

Commit 2726147

Browse files
committed
Bug fixes
1 parent 8edd122 commit 2726147

File tree

4 files changed

+63
-35
lines changed

4 files changed

+63
-35
lines changed

integration/integration_tests.js

Lines changed: 54 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4867,39 +4867,65 @@ var all_tests = {
48674867
},
48684868

48694869
save_error_on_save_test : function() {
4870-
client.collection("save_error_on_save_test", function(err, collection) {
4871-
//insert new user
4872-
collection.save({
4873-
email: 'email@email.com',
4874-
encrypted_password: 'password',
4875-
friends:
4876-
[ '4db96b973d01205364000006',
4877-
'4db94a1948a683a176000001',
4878-
'4dc77b24c5ba38be14000002' ],
4879-
location: [ 72.4930088, 23.0431957 ],
4880-
name: 'Amit Kumar',
4881-
password_salt: 'salty',
4882-
profile_fields: [],
4883-
username: 'amit' }, function(err, doc){
4884-
});
4870+
var db = new Db('test-save_error_on_save_test-db', new Server('localhost', 27017, {auto_reconnect: true}, {strict:true}));
4871+
db.bson_deserializer = client.bson_deserializer;
4872+
db.bson_serializer = client.bson_serializer;
4873+
db.pkFactory = client.pkFactory;
4874+
4875+
db.open(function(err, db) {
4876+
db.collection("save_error_on_save_test", function(err, collection) {
4877+
// Create unique index for username
4878+
collection.createIndex([['username', 1]], true, function(err, result) {
4879+
//insert new user
4880+
collection.save({
4881+
email: 'email@email.com',
4882+
encrypted_password: 'password',
4883+
friends:
4884+
[ '4db96b973d01205364000006',
4885+
'4db94a1948a683a176000001',
4886+
'4dc77b24c5ba38be14000002' ],
4887+
location: [ 72.4930088, 23.0431957 ],
4888+
name: 'Amit Kumar',
4889+
password_salt: 'salty',
4890+
profile_fields: [],
4891+
username: 'amit' }, function(err, doc){
4892+
});
48854893

4886-
collection.find({}).limit(1).toArray(function(err, users){
4887-
user = users[0]
4888-
if(err) {
4889-
console.log(err.message)
4890-
} else if(user) {
4891-
user.friends.splice(1,1)
4892-
collection.save(user, {safe:true}, function(err, doc){
4893-
if(err) {
4894-
console.log(err.message)
4895-
}
4894+
collection.find({}).limit(1).toArray(function(err, users){
4895+
test.equal(null, err);
4896+
user = users[0]
4897+
user.friends.splice(1,1)
48964898

4897-
finished_test({save_error_on_save_test:'ok'});
4899+
collection.save(user, function(err, doc){
4900+
test.equal(null, err);
4901+
db.close();
4902+
finished_test({save_error_on_save_test:'ok'});
4903+
});
4904+
});
4905+
})
4906+
});
4907+
});
4908+
},
4909+
4910+
remove_with_no_callback_bug_test : function() {
4911+
client.collection("remove_with_no_callback_bug_test", function(err, collection) {
4912+
collection.save({a:1}, {safe:true}, function(){
4913+
collection.save({b:1}, {safe:true}, function(){
4914+
collection.save({c:1}, {safe:true}, function(){
4915+
collection.remove({a:1})
4916+
4917+
// Let's perform a count
4918+
collection.count(function(err, count) {
4919+
test.equal(null, err);
4920+
test.equal(2, count);
4921+
4922+
finished_test({remove_with_no_callback_bug_test:'ok'});
4923+
});
48984924
});
4899-
}
4925+
});
49004926
});
49014927
});
4902-
},
4928+
},
49034929
};
49044930

49054931
/*******************************************************************************************************

lib/mongodb/collection.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,18 @@ Collection.prototype.checkCollectionName = function(collectionName) {
8383
};
8484

8585
Collection.prototype.remove = function(selector, options, callback) {
86-
var args = Array.prototype.slice.call(arguments, 0);
86+
var args = Array.prototype.slice.call(arguments, 1);
8787
callback = args.pop();
88-
var removeSelector = args.length ? args.shift() : {};
8988
options = args.length ? args.shift() : {};
9089

90+
// Special case where
91+
if(selector === callback || Object.prototype.toString.call(selector) == '[object Function]') {
92+
callback = selector;
93+
selector = {};
94+
}
95+
9196
// Generate selector for remove all if not available
92-
var deleteCommand = new DeleteCommand(this.db, this.db.databaseName + "." + this.collectionName, removeSelector);
97+
var deleteCommand = new DeleteCommand(this.db, this.db.databaseName + "." + this.collectionName, selector);
9398
// Execute the command, do not add a callback as it's async
9499
var result = this.db.executeCommand(deleteCommand);
95100
if(result instanceof Error) {

lib/mongodb/connection.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ var net = require('net'),
66
inherits = require('sys').inherits,
77
Server = require('./connections/server').Server;
88

9-
// debug("================================== SERVER")
10-
// debug(inspect(require('./connections/server')))
11-
129
var Connection = exports.Connection = function(host, port, autoReconnect) {
1310
this.host = host;
1411
this.port = port;

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{ "name" : "mongodb"
22
, "description" : "A node.js driver for MongoDB"
3-
, "version" : "0.9.4-1"
3+
, "version" : "0.9.4-2"
44
, "author" : "Christian Amor Kvalheim <christkv@gmail.com>"
55
, "contributors" : [ "Nathan White <nw@nwhite.net>",
66
"Adam Wiggins <adam@heroku.com>",

0 commit comments

Comments
 (0)