32 lines
868 B
JavaScript
32 lines
868 B
JavaScript
// test sorting, mainly a test ver simple with no index
|
|
t = db.sort2;
|
|
|
|
t.drop();
|
|
t.save({x: 1, y: {a: 5, b: 4}});
|
|
t.save({x: 1, y: {a: 7, b: 3}});
|
|
t.save({x: 1, y: {a: 2, b: 3}});
|
|
t.save({x: 1, y: {a: 9, b: 3}});
|
|
for (var pass = 0; pass < 2; pass++) {
|
|
var res = t.find().sort({'y.a': 1}).toArray();
|
|
assert(res[0].y.a == 2);
|
|
assert(res[1].y.a == 5);
|
|
assert(res.length == 4);
|
|
t.createIndex({"y.a": 1});
|
|
}
|
|
assert(t.validate().valid);
|
|
|
|
t.drop();
|
|
t.insert({x: 1});
|
|
t.insert({x: 5000000000});
|
|
t.insert({x: NaN});
|
|
t.insert({x: Infinity});
|
|
t.insert({x: -Infinity});
|
|
var good = [NaN, -Infinity, 1, 5000000000, Infinity];
|
|
for (var pass = 0; pass < 2; pass++) {
|
|
var res = t.find({}, {_id: 0}).sort({x: 1}).toArray();
|
|
for (var i = 0; i < good.length; i++) {
|
|
assert(good[i].toString() == res[i].x.toString());
|
|
}
|
|
t.createIndex({x: 1});
|
|
}
|