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
|
t = db.find1;
t.drop();
lookAtDocumentMetrics = false;
// QUERY MIGRATION
// New system is still not connected to server status
if (db.serverStatus().metrics) {
// var ss = db.serverStatus();
// lookAtDocumentMetrics = ss.metrics.document != null && ss.metrics.queryExecutor.scanned !=
// null;
}
print("lookAtDocumentMetrics: " + lookAtDocumentMetrics);
if (lookAtDocumentMetrics) {
// ignore mongos
nscannedStart = db.serverStatus().metrics.queryExecutor.scanned;
}
t.save({a: 1, b: "hi"});
t.save({a: 2, b: "hi"});
// Basic test of .snapshot().
assert(t.find().snapshot()[0].a == 1, ".snapshot() simple test 1");
var q = t.findOne();
q.c =
"zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz";
t.save(q); // will move a:1 object to after a:2 in the file
assert(t.find().snapshot()[0].a == 1, ".snapshot() simple test 2");
assert(t.findOne({a: 1}).b != null, "A");
assert(t.findOne({a: 1}, {a: 1}).b == null, "B");
assert(t.find({a: 1})[0].b != null, "C");
assert(t.find({a: 1}, {a: 1})[0].b == null, "D");
assert(t.find({a: 1}, {a: 1}).sort({a: 1})[0].b == null, "D");
id = t.findOne()._id;
assert(t.findOne(id), "E");
assert(t.findOne(id).a, "F");
assert(t.findOne(id).b, "G");
assert(t.findOne(id, {a: 1}).a, "H");
assert(!t.findOne(id, {a: 1}).b, "I");
assert(t.validate().valid, "not valid");
if (lookAtDocumentMetrics) {
// ignore mongos
nscannedEnd = db.serverStatus().metrics.queryExecutor.scanned;
assert.lte(nscannedStart + 16, nscannedEnd);
}
|