summaryrefslogtreecommitdiff
path: root/jstests/update.js
blob: 681bf7cf464554ac2c1d8523b34d46b3af24a6ab (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

asdf = db.getCollection( "asdf" );
asdf.drop();

var txt = "asdf";
for(var i=0; i<10; i++) {
    txt = txt + txt;
}

var iterations = _isWindows() ? 2500 : 5000

// fill db
for(var i=1; i<=iterations; i++) {
    var obj = {txt : txt};
    asdf.save(obj);

    var obj2 = {txt: txt, comments: [{num: i, txt: txt}, {num: [], txt: txt}, {num: true, txt: txt}]};
    asdf.update(obj, obj2);

    if(i%100 == 0) {
        var c = asdf.count();
        assert.eq(c , i);
    }
}

assert(asdf.validate().valid);

var stats = db.runCommand({ collstats: "asdf" });

// some checks. want to check that padding factor is working; in addition this lets us do a little basic 
// testing of the collstats command at the same time
assert(stats.count == iterations);
assert(stats.size < 140433012 * 5 && stats.size > 1000000);
assert(stats.numExtents < 20);
assert(stats.nindexes == 1);
var pf = stats.paddingFactor;
print("update.js padding factor: " + pf);
assert(pf > 1.7 && pf < 2);

asdf.drop();