diff options
Diffstat (limited to 'jstests/update4.js')
-rw-r--r-- | jstests/update4.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/jstests/update4.js b/jstests/update4.js new file mode 100644 index 0000000..1502f67 --- /dev/null +++ b/jstests/update4.js @@ -0,0 +1,33 @@ +f = db.jstests_update4; +f.drop(); + +getLastError = function() { + ret = db.runCommand( { getlasterror : 1 } ); +// printjson( ret ); + return ret; +} + +f.save( {a:1} ); +f.update( {a:1}, {a:2} ); +assert.eq( true, getLastError().updatedExisting , "A" ); +assert.eq( 1, getLastError().n , "B" ); +f.update( {a:1}, {a:2} ); +assert.eq( false, getLastError().updatedExisting , "C" ); +assert.eq( 0, getLastError().n , "D" ); + +f.update( {a:1}, {a:1}, true ); +assert.eq( false, getLastError().updatedExisting , "E" ); +assert.eq( 1, getLastError().n , "F" ); +f.update( {a:1}, {a:1}, true ); +assert.eq( true, getLastError().updatedExisting , "G" ); +assert.eq( 1, getLastError().n , "H" ); +assert.eq( true, db.getPrevError().updatedExisting , "I" ); +assert.eq( 1, db.getPrevError().nPrev , "J" ); + +f.findOne(); +assert.eq( undefined, getLastError().updatedExisting , "K" ); +assert.eq( true, db.getPrevError().updatedExisting , "L" ); +assert.eq( 2, db.getPrevError().nPrev , "M" ); + +db.forceError(); +assert.eq( undefined, getLastError().updatedExisting , "N" ); |