summaryrefslogtreecommitdiff
path: root/jstests/core/distinct1.js
blob: 03e425af7613d54f7f03e9db3696144fec91f96e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

t = db.distinct1;
t.drop();

assert.eq( 0 , t.distinct( "a" ).length , "test empty" );

t.save( { a : 1 } )
t.save( { a : 2 } )
t.save( { a : 2 } )
t.save( { a : 2 } )
t.save( { a : 3 } )


res = t.distinct( "a" );
assert.eq( "1,2,3" , res.toString() , "A1" );

assert.eq( "1,2" , t.distinct( "a" , { a : { $lt : 3 } } ) , "A2" );

t.drop();

t.save( { a : { b : "a" } , c : 12 } );
t.save( { a : { b : "b" } , c : 12 } );
t.save( { a : { b : "c" } , c : 12 } );
t.save( { a : { b : "c" } , c : 12 } );

res = t.distinct( "a.b" );
assert.eq( "a,b,c" , res.toString() , "B1" );
printjson(t._distinct( "a.b" ).stats);
assert.eq( "BasicCursor" , t._distinct( "a.b" ).stats.cursor , "B2" )

t.drop();

t.save({_id: 1, a: 1});
t.save({_id: 2, a: 2});

// Test distinct with _id.
res = t.distinct( "_id" );
assert.eq( "1,2", res.toString(), "C1" );
res = t.distinct( "a", {_id: 1} );
assert.eq( "1", res.toString(), "C2" );