Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 环回MongoDB GeoIp';近';来自angular客户端的查询_Angularjs_Node.js_Express_Mongoose_Loopbackjs - Fatal编程技术网

Angularjs 环回MongoDB GeoIp';近';来自angular客户端的查询

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; }); ^

我正在使用环回angular项目mongoDB作为数据库。在环回mongoDB查询中按纬度和经度搜索最近的用户,使用“near”关键字导致错误

注:我在2d中索引了“loc”字段

错误:

> 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,暂时解决了问题。谢谢你。如果你解决了自己的问题,请提供答案并将其标记为已接受。(如果这能进一步激励你,你会得到一枚徽章)