var insert = require('./insert'); insert('findAndModify', [{ id: 1, hello: 'you' }, { id: 2, hello: 'other' }], function(db, t, done) { // Update and find the old document db.a.findAndModify({ query: { id: 1 }, update: { $set: { hello: 'world' } }, }, function(err, doc, lastErrorObject) { t.ok(!err); t.equal(doc.id, 1); t.equal(doc.hello, 'you'); t.equal(lastErrorObject.updatedExisting, true); t.equal(lastErrorObject.n, 1); // Update and find the new document db.a.findAndModify({ query: { id: 2 }, 'new': true, update: { $set: { hello: 'me' } } }, function(err, doc, lastErrorObject) { t.ok(!err); t.equal(doc.id, 2); t.equal(doc.hello, 'me'); t.equal(lastErrorObject.updatedExisting, true); t.equal(lastErrorObject.n, 1); // Remove and find document db.a.findAndModify({ query: { id: 1 }, remove: true }, function(err, doc, lastErrorObject) { t.ok(!err); t.equal(doc.id, 1); t.equal(lastErrorObject.n, 1); // Insert document using upsert db.a.findAndModify({ query: { id: 3 }, update: { id: 3, hello: 'girl' }, 'new': true, upsert: true }, function(err, doc, lastErrorObject) { t.ok(!err); t.equal(doc.id, 3); t.equal(doc.hello, 'girl'); t.equal(lastErrorObject.updatedExisting, false); t.equal(lastErrorObject.n, 1); t.equal(String(lastErrorObject.upserted), String(doc._id)); // Find non existing document db.a.findAndModify({ query: { id: 0 }, update: { $set: { hello: 'boy' } } }, function(err, doc, lastErrorObject) { t.ok(!err); t.equal(lastErrorObject.n, 0); done(); }); }); }); }); }); });