45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
|
|
t = db.index_diag;
|
|
t.drop();
|
|
|
|
t.ensureIndex({x: 1});
|
|
|
|
all = [];
|
|
ids = [];
|
|
xs = [];
|
|
|
|
function r(a) {
|
|
var n = [];
|
|
for (var x = a.length - 1; x >= 0; x--)
|
|
n.push(a[x]);
|
|
return n;
|
|
}
|
|
|
|
for (i = 1; i < 4; i++) {
|
|
o = {_id: i, x: -i};
|
|
t.insert(o);
|
|
all.push(o);
|
|
ids.push({_id: i});
|
|
xs.push({x: -i});
|
|
}
|
|
|
|
assert.eq(all, t.find().sort({_id: 1}).toArray(), "A1");
|
|
assert.eq(r(all), t.find().sort({_id: -1}).toArray(), "A2");
|
|
|
|
assert.eq(all, t.find().sort({x: -1}).toArray(), "A3");
|
|
assert.eq(r(all), t.find().sort({x: 1}).toArray(), "A4");
|
|
|
|
assert.eq(ids, t.find().sort({_id: 1}).returnKey().toArray(), "B1");
|
|
assert.eq(r(ids), t.find().sort({_id: -1}).returnKey().toArray(), "B2");
|
|
assert.eq(xs, t.find().sort({x: -1}).returnKey().toArray(), "B3");
|
|
assert.eq(r(xs), t.find().sort({x: 1}).returnKey().toArray(), "B4");
|
|
|
|
assert.eq(r(xs), t.find().hint({x: 1}).returnKey().toArray(), "B4");
|
|
|
|
// SERVER-4981
|
|
t.ensureIndex({_id: 1, x: 1});
|
|
assert.eq(all, t.find().hint({_id: 1, x: 1}).returnKey().toArray());
|
|
assert.eq(r(all), t.find().hint({_id: 1, x: 1}).sort({x: 1}).returnKey().toArray());
|
|
|
|
assert.eq([{}, {}, {}], t.find().hint({$natural: 1}).returnKey().toArray());
|