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.sort4;
t.drop();
function nice(sort, correct, extra) {
var c = t.find().sort(sort);
var s = "";
c.forEach(function(z) {
if (s.length)
s += ",";
s += z.name;
if (z.prename)
s += z.prename;
});
print(tojson(sort) + "\t" + s);
if (correct)
assert.eq(correct, s, tojson(sort) + "(" + extra + ")");
return s;
}
t.save({name: 'A', prename: 'B'});
t.save({name: 'A', prename: 'C'});
t.save({name: 'B', prename: 'B'});
t.save({name: 'B', prename: 'D'});
nice({name: 1}, "AB,AC,BB,BD", "s1");
nice({prename: 1}, "AB,BB,AC,BD", "s2");
nice({name: 1, prename: 1}, "AB,AC,BB,BD", "s3");
t.save({name: 'A'});
nice({name: 1, prename: 1}, "A,AB,AC,BB,BD", "e1");
t.save({name: 'C'});
nice({name: 1, prename: 1}, "A,AB,AC,BB,BD,C", "e2"); // SERVER-282
t.ensureIndex({name: 1, prename: 1});
nice({name: 1, prename: 1}, "A,AB,AC,BB,BD,C", "e2ia"); // SERVER-282
t.dropIndexes();
t.ensureIndex({name: 1});
nice({name: 1, prename: 1}, "A,AB,AC,BB,BD,C", "e2ib"); // SERVER-282
|