gpt4 book ai didi

node.js - Mongoose :geoNear 和填充。是否可以在使用 executeDbCommand 时填充字段?

转载 作者:可可西里 更新时间:2023-11-01 10:04:39 25 4
gpt4 key购买 nike

我正在使用 Mongoose 进行地理空间查询,并且还想使用 populate()。

我是否正确认为 populate() 是 Mongoose 特定的命令并且在使用 executeDbCommand 时不起作用?我尝试了以下方法:

db.db.executeDbCommand({
geoNear : "geopoints",
near : [long, lat],
populate : 'field', <-- doesn't work
spherical : false,
distanceMultiplier:radPerMile,
maxDistance : maxDis
}, function(err, result){
})

也不是

db.db.executeDbCommand({
geoNear : "geopoints",
near : long, lat],
spherical : false,
distanceMultiplier:radPerMile,
maxDistance : maxDis
}, function(err, result){
}).populate('field', function(err, res){
//also didn't work
})

有什么建议吗?

最佳答案

这是我的做法:

        var query = property.geoNear(
[parseFloat(req.params.longitude), parseFloat(req.params.latitude)],
{
spherical : true,
distanceMultiplier: 3959,
maxDistance : parseFloat(req.params.distance)/3959
}, function(err,docs) {
if (err) throw err;

//mapping each doc into new object and populating distance
docs = docs.map(function(x) {
var a = new property( x.obj );
a.distance = x.dis;
return a;
});

// populating user object
property.populate( docs, { path: 'user', select: 'firstname lastname email' }, function(err,properties) {
if (err) res.json(err);
res.json(properties);
});
});

关于node.js - Mongoose :geoNear 和填充。是否可以在使用 executeDbCommand 时填充字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19520639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com