我正在使用 mongoDB 开发 nodeJS 应用程序,我正在尝试让所有用户靠近当前用户...
我真正的问题是,当我的查询基于“2d”索引(我在 1 分钟内收到大约 25000 个响应)时,我的应用程序运行良好,但是当我尝试使用“2dsphere”索引时,我的延迟时间很长( 1 个请求的执行时间超过 2 秒)...
这是我的要求:
app.get('/findInsertLocGeoNear100true', function(req, res) {
var obj = getRandomCoordonnee();//"obj" = random longitude and latitude.
userModel.geoNear({
type: "Point" ,
coordinates: [ obj.lat,obj.lng ]
},
{ maxDistance : 5,
spherical : true,
num : 100
},
function(err, results, stats) {
res.json(200, results);
console.log(err);
});
});
这是我的模式猫鼬:
var userSchema = new mongoose.Schema({
loc: {type: [Number]},
name : { type : String, match: /^[a-zA-Z0-9-_]+$/ },
dateLastActivity : { type : Date, default : Date.now },
type: Number
});
注意:MongoDB 在 ubuntu 服务器上运行,我的索引是使用 "db.users.ensureIndex({"loc":"2dsphere"})" 创建的
如果您有任何建议、最佳实践或建议来提高我的表现,我会很高兴听到它们。谢谢 !此致。