Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
Arrays $geoNear带条件参数_Arrays_Mongodb_Geolocation_Operators - Fatal编程技术网

Arrays $geoNear带条件参数

Arrays $geoNear带条件参数,arrays,mongodb,geolocation,operators,Arrays,Mongodb,Geolocation,Operators,我在record collection Mongodb(3.4)中有如下文档:- { "_id" : ObjectId("592d0c78555a7436b0883960"), "userid" : 7, "addresses" : [ { "apporx" : 50.0, "loc" : [ -73.98137109999999, 40.7476039 ] }

我在record collection Mongodb(3.4)中有如下文档:-

{ 
  "_id" : ObjectId("592d0c78555a7436b0883960"), 
  "userid" : 7, 
   "addresses" : [
    {
        "apporx" : 50.0, 
        "loc" : [
            -73.98137109999999, 
            40.7476039
        ]
    }, 
    {
        "apporx" : 15.0, 
        "loc" : [
            -73.982002, 
            40.74767
        ]          
    }, 
    {
        "apporx" :10.0, 
        "loc" : [
            -73.9819567, 
            40.7471609
        ]
    }
 ]
}
我使用以下查询在此集合上创建了二维索引:-

db.records.createIndex({ "addresses.loc": "2d" })
我想在条件运算符之后使用$geoNear命令,但$geoNear必须是聚合管道中的第一个。是否有其他方法,以便我可以在50到100之间应用条件“addresses.loc”像“addresses.loc”。应用此条件后,从“addresses”数组$geonear中获取的任何元素都将应用于该元素。

您可以为该元素提供一个“query”参数。由于这是在一个聚合管道中,您甚至可以在稍后的阶段以不同的效果执行
$match
。但是“你期望的结果是什么?”。值得注意的是,您的“位置”位于文档中的一个数组中,因此,
$geoNear
中的查询选项和位置参数的组合可能不会返回您期望的结果。例如,“near”查询部分可能离某个数组元素最近。但是,实际上没有办法使任何条件与指定“最近数组元素”上的条件的“近”部分“组合”。这在以后的
$match
中是可能的,但其效果是“过滤”,而不是强制选择不同的数组元素作为最近的数组元素。所以这取决于你在问什么。为了明确起见,您应该包含多个示例文档,并显示您希望从某些给定条件返回的预期结果。