summaryrefslogtreecommitdiff
path: root/jstests/where1.js
diff options
context:
space:
mode:
authorSiyuan Zhou <siyuan.zhou@mongodb.com>2014-03-03 17:15:39 -0500
committerMatt Kangas <matt.kangas@mongodb.com>2014-03-03 22:54:14 -0500
commit93d8befdbac74fb965faa4d3a8ae3e60d5a7a5b9 (patch)
treeb1be042b0d074266fb417177b33aa0f266a3f38b /jstests/where1.js
parent3660343e0b4627d2fee4afb89b74d32644d16d18 (diff)
downloadmongo-93d8befdbac74fb965faa4d3a8ae3e60d5a7a5b9.tar.gz
SERVER-12127 Temporarily put back jstest in order not to lose test coverage.
Signed-off-by: Matt Kangas <matt.kangas@mongodb.com>
Diffstat (limited to 'jstests/where1.js')
-rw-r--r--jstests/where1.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/jstests/where1.js b/jstests/where1.js
new file mode 100644
index 00000000000..7ff20a53620
--- /dev/null
+++ b/jstests/where1.js
@@ -0,0 +1,28 @@
+
+t = db.getCollection( "where1" );
+t.drop();
+
+t.save( { a : 1 } );
+t.save( { a : 2 } );
+t.save( { a : 3 } );
+
+assert.eq( 1 , t.find( function(){ return this.a == 2; } ).length() , "A" );
+
+assert.eq( 1 , t.find( { $where : "return this.a == 2" } ).toArray().length , "B" );
+assert.eq( 1 , t.find( { $where : "this.a == 2" } ).toArray().length , "C" );
+
+assert.eq( 1 , t.find( "this.a == 2" ).toArray().length , "D" );
+
+// SERVER-12117
+// positional $ projection should fail on a $where query
+assert.throws( function() { t.find( { $where : "return this.a;" }, { 'a.$' : 1 } ).itcount(); } );
+
+// SERVER-12439: $where must be top-level
+assert.throws( function() { t.find( { a: 1, b: { $where : "this.a;" } } ).itcount(); } );
+assert.throws( function() { t.find( { a: { $where : "this.a;" } } ).itcount(); } );
+assert.throws( function() {
+ t.find( { a: { $elemMatch : { $where : "this.a;" } } } ).itcount();
+} );
+assert.throws( function() {
+ t.find( { a: 3, "b.c": { $where : "this.a;" } } ).itcount();
+} );