Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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
MongoDB$maxDistance正在工作,但$MindDistance将不工作_Mongodb_Meteor - Fatal编程技术网

MongoDB$maxDistance正在工作,但$MindDistance将不工作

MongoDB$maxDistance正在工作,但$MindDistance将不工作,mongodb,meteor,Mongodb,Meteor,我正在尝试从我的收集中查找数据,并根据创建文章时的位置(loc:)按距离geoJSON点最近到最远的顺序显示 我已经进入mongo控制台并运行 db.my-collection.createIndex( { loc : "2dsphere" } ) 以确保它们被索引为2dsphere 现在,每当我使用find命令以上面提到的顺序列出帖子时,只有$maxDistance起作用,而$minDistance对它们的顺序没有任何影响。代码如下: return posts.find({

我正在尝试从我的收集中查找数据,并根据创建文章时的位置(loc:)按距离geoJSON点最近到最远的顺序显示

我已经进入mongo控制台并运行

db.my-collection.createIndex( { loc : "2dsphere" } )
以确保它们被索引为2dsphere

现在,每当我使用find命令以上面提到的顺序列出帖子时,只有$maxDistance起作用,而$minDistance对它们的顺序没有任何影响。代码如下:

return posts.find({
        loc:
             { $near :
                    {
                        $geometry:{ type:"Point", coordinates:[ lng, lat]},
                        $maxDistance: maxDistance,
                        $minDistance: minDistance
                    }
             },
        });

}
Collection._ensureIndex({'loc':'2dsphere'});

我相信我已经完成了mongoDB()上描述的所有操作,但似乎我遗漏了一些东西。

为了让$MindDistance和$maxDistance都能工作,我必须在代码中添加以下行:

return posts.find({
        loc:
             { $near :
                    {
                        $geometry:{ type:"Point", coordinates:[ lng, lat]},
                        $maxDistance: maxDistance,
                        $minDistance: minDistance
                    }
             },
        });

}
Collection._ensureIndex({'loc':'2dsphere'});

为了让$minDistance和$maxDistance都能工作,我必须在代码中添加以下行:

return posts.find({
        loc:
             { $near :
                    {
                        $geometry:{ type:"Point", coordinates:[ lng, lat]},
                        $maxDistance: maxDistance,
                        $minDistance: minDistance
                    }
             },
        });

}
Collection._ensureIndex({'loc':'2dsphere'});

我不明白。如果您试图对它们进行排序,则需要指定一个
sort
选项。使用
maxDistance
minDistance
是一个硬约束(不要显示任何不符合这些条件的结果),而不是排序顺序。如果我没有弄错,$near命令会自动对它们进行排序。问题是,当它对它们进行排序时,它没有考虑到帖子显示所需的$MindDistance,因此它们最终都会显示出来。当您直接在mongodb中执行查询时,是否会得到相同的结果?i、 例如,这是meteor问题还是mongo问题?每当我尝试在mongo db控制台中运行命令时,我都会收到以下错误“$near需要一个点,给定{type:\'point\”,坐标:[100.0,100.0]}”我不确定这是meteor还是mongo发生的事情。我认为这可能与mongo有关,因为如果我在代码中编辑最大距离,帖子将发生变化(例如$maxDistance=0将不会加载任何帖子),但编辑$MindDistance不会起任何作用。我不明白。如果您试图对它们进行排序,则需要指定一个
sort
选项。使用
maxDistance
minDistance
是一个硬约束(不要显示任何不符合这些条件的结果),而不是排序顺序。如果我没有弄错,$near命令会自动对它们进行排序。问题是,当它对它们进行排序时,它没有考虑到帖子显示所需的$MindDistance,因此它们最终都会显示出来。当您直接在mongodb中执行查询时,是否会得到相同的结果?i、 例如,这是meteor问题还是mongo问题?每当我尝试在mongo db控制台中运行命令时,我都会收到以下错误“$near需要一个点,给定{type:\'point\”,坐标:[100.0,100.0]}”我不确定这是meteor还是mongo发生的事情。我认为这可能与mongo有关,因为如果我在代码中编辑最大距离,帖子将发生变化(例如$maxDistance=0将不会加载任何帖子)但是编辑$MindDistance没有任何作用。@lsaac即使索引为'2dsphere'仍然没有得到结果?@lsaac即使索引为'2dsphere'仍然没有得到结果?