summaryrefslogtreecommitdiff
path: root/jstests/dbref2.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/dbref2.js')
-rw-r--r--jstests/dbref2.js20
1 files changed, 20 insertions, 0 deletions
diff --git a/jstests/dbref2.js b/jstests/dbref2.js
new file mode 100644
index 00000000000..d1b4870322d
--- /dev/null
+++ b/jstests/dbref2.js
@@ -0,0 +1,20 @@
+
+a = db.dbref2a;
+b = db.dbref2b;
+c = db.dbref2c;
+
+a.drop();
+b.drop();
+c.drop();
+
+a.save( { name : "eliot" } );
+b.save( { num : 1 , link : new DBRef( "dbref2a" , a.findOne()._id ) } );
+c.save( { num : 1 , links : [ new DBRef( "dbref2a" , a.findOne()._id ) ] } );
+
+assert.eq( "eliot" , b.findOne().link.fetch().name , "A" );
+assert.neq( "el" , b.findOne().link.fetch().name , "B" );
+
+// $elemMatch value
+var doc = c.findOne( { links: { $elemMatch: { $ref : "dbref2a", $id : a.findOne()._id } } } );
+assert.eq( "eliot" , doc.links[0].fetch().name , "C" );
+assert.neq( "el" , doc.links[0].fetch().name , "D" );