summaryrefslogtreecommitdiff
path: root/jstests/unique2.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/unique2.js')
-rw-r--r--jstests/unique2.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/jstests/unique2.js b/jstests/unique2.js
new file mode 100644
index 0000000..42cf9fb
--- /dev/null
+++ b/jstests/unique2.js
@@ -0,0 +1,41 @@
+
+t = db.jstests_unique2;
+
+t.drop();
+
+/* test for good behavior when indexing multikeys */
+
+t.insert({k:3});
+t.insert({k:[2,3]});
+t.insert({k:[4,3]});
+
+t.ensureIndex({k:1}, {unique:true, dropDups:true});
+
+assert( t.count() == 1 ) ;
+assert( t.find().sort({k:1}).toArray().length == 1 ) ;
+assert( t.find().sort({k:1}).count() == 1 ) ;
+
+t.drop();
+
+t.ensureIndex({k:1}, {unique:true});
+
+t.insert({k:3});
+t.insert({k:[2,3]});
+t.insert({k:[4,3]});
+
+assert( t.count() == 1 ) ;
+assert( t.find().sort({k:1}).toArray().length == 1 ) ;
+assert( t.find().sort({k:1}).count() == 1 ) ;
+
+t.dropIndexes();
+
+t.insert({k:[2,3]});
+t.insert({k:[4,3]});
+assert( t.count() == 3 ) ;
+
+t.ensureIndex({k:1}, {unique:true, dropDups:true});
+
+assert( t.count() == 1 ) ;
+assert( t.find().sort({k:1}).toArray().length == 1 ) ;
+assert( t.find().sort({k:1}).count() == 1 ) ;
+