diff options
author | Eliot Horowitz <eliot@10gen.com> | 2010-11-20 18:02:59 -0500 |
---|---|---|
committer | Eliot Horowitz <eliot@10gen.com> | 2010-11-20 18:02:59 -0500 |
commit | e55fa7eb47873abe3236b3e1686d2a337dd6a86a (patch) | |
tree | bcce88d8739d51d1c1f42456579c3794e52f75f1 /jstests/index_sparse1.js | |
parent | f496b7f7f12593baab36a7466297c5f6dfeb984c (diff) | |
download | mongo-e55fa7eb47873abe3236b3e1686d2a337dd6a86a.tar.gz |
basic sparse indexes working SERVER-484
Diffstat (limited to 'jstests/index_sparse1.js')
-rw-r--r-- | jstests/index_sparse1.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/jstests/index_sparse1.js b/jstests/index_sparse1.js new file mode 100644 index 00000000000..9935597c90e --- /dev/null +++ b/jstests/index_sparse1.js @@ -0,0 +1,46 @@ + +t = db.index_sparse1 +t.drop(); + +t.insert( { _id : 1 , x : 1 } ) +t.insert( { _id : 2 , x : 2 } ) +t.insert( { _id : 3 , x : 2 } ) +t.insert( { _id : 4 } ) +t.insert( { _id : 5 } ) + +assert.eq( 5 , t.count() , "A1" ) +assert.eq( 5 , t.find().sort( { x : 1 } ).itcount() , "A2" ) + +t.ensureIndex( { x : 1 } ) +assert.eq( 2 , t.getIndexes().length , "B1" ) +assert.eq( 5 , t.find().sort( { x : 1 } ).itcount() , "B2" ) +t.dropIndex( { x : 1 } ) +assert.eq( 1 , t.getIndexes().length , "B3" ) + +t.ensureIndex( { x : 1 } , { sparse : 1 } ) +assert.eq( 2 , t.getIndexes().length , "C1" ) +assert.eq( 3 , t.find().sort( { x : 1 } ).itcount() , "C2" ) +t.dropIndex( { x : 1 } ) +assert.eq( 1 , t.getIndexes().length , "C3" ) + +// -- sparse & unique + +t.remove( { _id : 2 } ) + +// test that we can't create a unique index without sparse +t.ensureIndex( { x : 1 } , { unique : 1 } ) +assert( db.getLastError() , "D1" ) +assert.eq( 1 , t.getIndexes().length , "D2" ) + + +t.ensureIndex( { x : 1 } , { unique : 1 , sparse : 1 } ) +assert.eq( 2 , t.getIndexes().length , "E1" ) +t.dropIndex( { x : 1 } ) +assert.eq( 1 , t.getIndexes().length , "E3" ) + + +t.insert( { _id : 2 , x : 2 } ) +t.ensureIndex( { x : 1 } , { unique : 1 , sparse : 1 } ) +assert.eq( 1 , t.getIndexes().length , "F1" ) + + |