41 lines
998 B
JavaScript
41 lines
998 B
JavaScript
|
|
t = db.geo1;
|
|
t.drop();
|
|
|
|
idx = {
|
|
loc: "2d",
|
|
zip: 1
|
|
};
|
|
|
|
t.insert({zip: "06525", loc: [41.352964, 73.01212]});
|
|
t.insert({zip: "10024", loc: [40.786387, 73.97709]});
|
|
assert.writeOK(t.insert({zip: "94061", loc: [37.463911, 122.23396]}));
|
|
|
|
// test "2d" has to be first
|
|
assert.eq(1, t.getIndexKeys().length, "S1");
|
|
t.ensureIndex({zip: 1, loc: "2d"});
|
|
assert.eq(1, t.getIndexKeys().length, "S2");
|
|
|
|
t.ensureIndex(idx);
|
|
assert.eq(2, t.getIndexKeys().length, "S3");
|
|
|
|
assert.eq(3, t.count(), "B1");
|
|
assert.writeError(t.insert({loc: [200, 200]}));
|
|
assert.eq(3, t.count(), "B3");
|
|
|
|
// test normal access
|
|
|
|
wb = t.findOne({zip: "06525"});
|
|
assert(wb, "C1");
|
|
|
|
assert.eq("06525", t.find({loc: wb.loc}).hint({"$natural": 1})[0].zip, "C2");
|
|
assert.eq("06525", t.find({loc: wb.loc})[0].zip, "C3");
|
|
// assert.eq( 1 , t.find( { loc : wb.loc } ).explain().nscanned , "C4" )
|
|
|
|
// test config options
|
|
|
|
t.drop();
|
|
|
|
t.ensureIndex({loc: "2d"}, {min: -500, max: 500, bits: 4});
|
|
assert.writeOK(t.insert({loc: [200, 200]}));
|