summaryrefslogtreecommitdiff
path: root/jstests/apitest_dbcollection.js
blob: 0983b065477c34bfdc200acde025f1c8d19d8c9f (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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/**
 *   Tests for the db collection 
 */



/*
 *  test drop
 */
db.getCollection( "test_db" ).drop();
assert(db.getCollection( "test_db" ).find().length() == 0,1);

db.getCollection( "test_db" ).save({a:1});
assert(db.getCollection( "test_db" ).find().length() == 1,2);

db.getCollection( "test_db" ).drop();
assert(db.getCollection( "test_db" ).find().length() == 0,3);

/*
 * test count
 */
 
assert(db.getCollection( "test_db" ).count() == 0,4);
db.getCollection( "test_db" ).save({a:1});
assert(db.getCollection( "test_db" ).count() == 1,5);
for (i = 0; i < 100; i++) {
    db.getCollection( "test_db" ).save({a:1});
}
assert(db.getCollection( "test_db" ).count() == 101,6);
db.getCollection( "test_db" ).drop();
assert(db.getCollection( "test_db" ).count() == 0,7);
 
/*
 *  test clean (not sure... just be sure it doen't blow up, I guess
 */ 
 
 db.getCollection( "test_db" ).clean();
 
 /*
  * test validate
  */

db.getCollection( "test_db" ).drop();
assert(db.getCollection( "test_db" ).count() == 0,8);

for (i = 0; i < 100; i++) {
    db.getCollection( "test_db" ).save({a:1});
}
  
var v = db.getCollection( "test_db" ).validate();
if( v.ns != "test.test_db" ) { 
    print("Error: wrong ns name");
    print(tojson(v));
}
assert (v.ns == "test.test_db",9);
assert (v.ok == 1,10);

assert.eq(100,v.nrecords,11)

/*
 * test deleteIndex, deleteIndexes
 */
 
db.getCollection( "test_db" ).drop();
assert(db.getCollection( "test_db" ).count() == 0,12);
db.getCollection( "test_db" ).dropIndexes();
assert(db.getCollection( "test_db" ).getIndexes().length == 0,13);  

db.getCollection( "test_db" ).save({a:10});
assert(db.getCollection( "test_db" ).getIndexes().length == 1,14);  

db.getCollection( "test_db" ).ensureIndex({a:1});
db.getCollection( "test_db" ).save({a:10});

print( tojson( db.getCollection( "test_db" ).getIndexes() ) );
assert.eq(db.getCollection( "test_db" ).getIndexes().length , 2,15);  

db.getCollection( "test_db" ).dropIndex({a:1});
assert(db.getCollection( "test_db" ).getIndexes().length == 1,16);  

db.getCollection( "test_db" ).save({a:10});
db.getCollection( "test_db" ).ensureIndex({a:1});
db.getCollection( "test_db" ).save({a:10});

assert(db.getCollection( "test_db" ).getIndexes().length == 2,17);  

db.getCollection( "test_db" ).dropIndex("a_1");
assert.eq( db.getCollection( "test_db" ).getIndexes().length , 1,18);  

db.getCollection( "test_db" ).save({a:10, b:11});
db.getCollection( "test_db" ).ensureIndex({a:1});
db.getCollection( "test_db" ).ensureIndex({b:1});
db.getCollection( "test_db" ).save({a:10, b:12});

assert(db.getCollection( "test_db" ).getIndexes().length == 3,19);  

db.getCollection( "test_db" ).dropIndex({b:1});
assert(db.getCollection( "test_db" ).getIndexes().length == 2,20);  
db.getCollection( "test_db" ).dropIndex({a:1});
assert(db.getCollection( "test_db" ).getIndexes().length == 1,21);  

db.getCollection( "test_db" ).save({a:10, b:11});
db.getCollection( "test_db" ).ensureIndex({a:1});
db.getCollection( "test_db" ).ensureIndex({b:1});
db.getCollection( "test_db" ).save({a:10, b:12});

assert(db.getCollection( "test_db" ).getIndexes().length == 3,22);  

db.getCollection( "test_db" ).dropIndexes();
assert(db.getCollection( "test_db" ).getIndexes().length == 1,23);  

db.getCollection( "test_db" ).find();

db.getCollection( "test_db" ).drop();
assert(db.getCollection( "test_db" ).getIndexes().length == 0,24);