summaryrefslogtreecommitdiff
path: root/jstests/where4.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/where4.js')
-rw-r--r--jstests/where4.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/jstests/where4.js b/jstests/where4.js
new file mode 100644
index 00000000000..61ec3771bed
--- /dev/null
+++ b/jstests/where4.js
@@ -0,0 +1,27 @@
+
+db.where4.drop();
+
+db.system.js.insert( { _id : "w4" , value : "5" } )
+
+db.where4.insert( { x : 1 , y : 1 } )
+db.where4.insert( { x : 2 , y : 1 } )
+
+db.where4.update( { $where : function() { return this.x == 1; } } ,
+ { $inc : { y : 1 } } , false , true );
+
+
+assert.eq( 2 , db.where4.findOne( { x : 1 } ).y )
+assert.eq( 1 , db.where4.findOne( { x : 2 } ).y )
+
+// Test that where queries work with stored javascript
+db.system.js.save( { _id : "where4_addOne" , value : function(x) { return x + 1; } } )
+
+db.where4.update( { $where : "where4_addOne(this.x) == 2" } ,
+ { $inc : { y : 1 } } , false , true );
+
+assert.eq( 3 , db.where4.findOne( { x : 1 } ).y )
+assert.eq( 1 , db.where4.findOne( { x : 2 } ).y )
+
+db.system.js.remove( { _id : "where4_equalsOne" } )
+
+db.system.js.remove( { _id : "w4" } )