我想不出哪裏會不退還的距離單宗。所以,你必須做不同的東西如何此示例中表示:
var async = require('async'),
mongoose = require('mongoose'),
Schema = mongoose.Schema;
mongoose.connect('mongodb://localhost/test');
var geoSchema = new Schema({
"lastKnownPosition": {
"lon": Number,
"lat": Number
},
"userName": String
});
geoSchema.index({ "lastKnownPosition": "2d" });
var Geo = mongoose.model("Geo", geoSchema, "testgeo");
mongoose.connection.on("open", function(err,conn) {
async.series(
[
function(callback) {
Geo.remove({},function(err) {
callback();
});
},
function(callback) {
Geo.create(
{
"lastKnownPosition": { "lon": 0, "lat": 0 },
"userName": "test123"
},
function(err,doc) {
if (err) throw err;
callback();
}
);
},
// Mongoose method
function(callback) {
Geo.geoNear(
[0,0],
{
maxDistance: 90,
query: { 'userName': { '$regex': '^test' } }
},
function(err,docs) {
if (err) throw err;
console.log(docs);
callback();
});
},
// Native method
function(callback) {
Geo.db.db.executeDbCommand(
{
"geoNear": "testgeo",
"near": [ 0, 0 ],
"maxDistance": 90,
"query": { 'userName': /^test/ },
},function(err,result) {
if (err) throw err;
console.log(result.documents[0].results[0]);
callback();
}
);
},
// aggregate method
function(callback) {
Geo.aggregate(
[
{ "$geoNear": {
"near": [0,0],
"distanceField": "distance",
"maxDistance": 90,
"query": { "userName": { "$regex": "^test" } }
}}
],
function(err,result) {
if (err) throw err;
console.log(result);
callback();
}
);
}
],
function(err) {
mongoose.disconnect();
}
);
});
將會產生類似以下的輸出:
[ { dis: 0,
obj:
{ userName: 'test123',
__v: 0,
_id: 54225696ce2837e4495cd188,
lastKnownPosition: { lon: 0, lat: 0 } } } ]
{ dis: 0,
obj:
{ _id: 54225696ce2837e4495cd188,
userName: 'test123',
lastKnownPosition: { lon: 0, lat: 0 },
__v: 0 } }
[ { _id: 54225696ce2837e4495cd188,
userName: 'test123',
lastKnownPosition: { lon: 0, lat: 0 },
__v: 0,
distance: 0 } ]
都有一個「距離」字段,默認爲「 dis「並且通過調用中的"geoNear"命令與文檔分開,或者被指定並且包括在來自聚合$geoNear
運營商的文檔中。
按照任何這些模式,你會得到你想要的結果。
什麼結果你回來還是會給你一個錯誤? – 2014-09-23 17:58:42
我找回用戶列表。我會用結果更新我的帖子。 – attila226 2014-09-23 18:03:10
有沒有機會從您的收藏中抽取幾份文件的樣本? – 2014-09-24 05:38:14