Angularjs 环回MongoDB GeoIp';近';来自angular客户端的查询
我正在使用环回angular项目mongoDB作为数据库。在环回mongoDB查询中按纬度和经度搜索最近的用户,使用“near”关键字导致错误 注:我在2d中索引了“loc”字段 错误:Angularjs 环回MongoDB GeoIp';近';来自angular客户端的查询,angularjs,node.js,express,mongoose,loopbackjs,Angularjs,Node.js,Express,Mongoose,Loopbackjs,我正在使用环回angular项目mongoDB作为数据库。在环回mongoDB查询中按纬度和经度搜索最近的用户,使用“near”关键字导致错误 注:我在2d中索引了“loc”字段 错误: > D:\nodejs\your-time\version_1\node_modules\mongodb\lib\utils.js:98 process.nextTick(function() { throw err; }); ^
> D:\nodejs\your-time\version_1\node_modules\mongodb\lib\utils.js:98
process.nextTick(function() { throw err; });
^
Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:344:11)
at ServerResponse.header (D:\nodejs\your-time\version_1\node_modules\express
\lib\response.js:719:10)
at HttpContext.done (D:\nodejs\your-time\version_1\node_modules\strong-remot
ing\lib\http-context.js:651:9)
at D:\nodejs\your-time\version_1\node_modules\strong-remoting\lib\rest-adapt
er.js:492:11
at D:\nodejs\your-time\version_1\node_modules\strong-remoting\node_modules\a
sync\lib\async.js:251:17
at D:\nodejs\your-time\version_1\node_modules\strong-remoting\node_modules\a
sync\lib\async.js:154:25
at D:\nodejs\your-time\version_1\node_modules\strong-remoting\node_modules\a
sync\lib\async.js:248:21
at D:\nodejs\your-time\version_1\node_modules\strong-remoting\node_modules\a
sync\lib\async.js:612:34
at interceptInvocationErrors (D:\nodejs\your-time\version_1\node_modules\str
ong-remoting\lib\remote-objects.js:690:22)
at D:\nodejs\your-time\version_1\node_modules\loopback-phase\node_modules\as
ync\lib\async.js:154:25
我的代码如下:
Profile.find({
filter: {
where: {
type: 'expert',
is_verified: 1,
expert_category: $scope.expertCategory,
loc: {
'near': [lat, lng]
}
}
}
}).$promise.then(function(users) {
console.log(users);
$scope.users = users;
});
我做错了什么?我刚刚从以下链接发现,环回仅支持2DPhere上的geoquery(我在2d中索引):
现在,在2dsphere中建立索引并将位置字段类型更改为object之后,问题就解决了。我刚刚从以下链接发现,环回仅支持2dsphere上的geoquery(我在2d中建立了索引):
现在,在2dsphere中建立索引并将位置字段类型更改为object之后,问题就解决了。看起来问题是其他问题,您是否尝试过删除
loc:{'near':[lat,lng]}
?确保它在没有lat/long参数的情况下工作。尝试{where:{geo:{near:{lat:42.266271,lng:-72.6700016}}}}}
-使用JS对象代替数组。我尝试过,同样的问题。我发现环回仅支持2DPhere上的geoquery(我在2d中索引),现在显示了一个新的错误,如上所述。嘿@jaym,将位置字段类型从GeoPoint更改为object,暂时解决了问题。谢谢你。如果你解决了自己的问题,请提供答案并将其标记为已接受。(若这能进一步激励你们的话,你们会得到一个徽章)看起来问题出在别的地方,你们试过移除loc:{'near':[lat,lng]}
?确保它在没有lat/long参数的情况下工作。尝试{where:{geo:{near:{lat:42.266271,lng:-72.6700016}}}}}
-使用JS对象代替数组。我尝试过,同样的问题。我发现环回仅支持2DPhere上的geoquery(我在2d中索引),现在显示了一个新的错误,如上所述。嘿@jaym,将位置字段类型从GeoPoint更改为object,暂时解决了问题。谢谢你。如果你解决了自己的问题,请提供答案并将其标记为已接受。(如果这能进一步激励你,你会得到一枚徽章)