32 lines
796 B
JavaScript
32 lines
796 B
JavaScript
// Tests geo queries w/ update & upsert
|
|
// from SERVER-3428
|
|
|
|
var coll = db.testGeoUpdate;
|
|
coll.drop();
|
|
|
|
coll.ensureIndex({loc: "2d"});
|
|
|
|
// Test normal update
|
|
print("Updating...");
|
|
|
|
coll.insert({loc: [1.0, 2.0]});
|
|
|
|
coll.update({loc: {$near: [1.0, 2.0]}}, {x: true, loc: [1.0, 2.0]});
|
|
|
|
// Test upsert
|
|
print("Upserting...");
|
|
|
|
coll.update({loc: {$within: {$center: [[10, 20], 1]}}}, {x: true}, true);
|
|
|
|
coll.update({loc: {$near: [10.0, 20.0], $maxDistance: 1}}, {x: true}, true);
|
|
|
|
coll.update({loc: {$near: [100, 100], $maxDistance: 1}},
|
|
{$set: {loc: [100, 100]}, $push: {people: "chris"}},
|
|
true);
|
|
|
|
coll.update({loc: {$near: [100, 100], $maxDistance: 1}},
|
|
{$set: {loc: [100, 100]}, $push: {people: "john"}},
|
|
true);
|
|
|
|
assert.eq(4, coll.find().itcount());
|