gpt4 book ai didi

Mongodb Search geolocation with text filters and group by 在单个查询中

转载 作者:可可西里 更新时间:2023-11-01 09:34:36 25 4
gpt4 key购买 nike

enter image description here我们正在使用 Mongo 数据库来插入与工作相关的数据。我想根据 GEO 位置坐标在标题和描述字段上进行文本搜索来获取计数。

假设我们有记录

id title                   coordinates[0]       coordinates[1]
--+-----------------------+---------------------+----------------
1 PHP developer | 97.77 | -92.99
2 Laravel developer,php | 97.77 | -92.99
3 python | 97.77 | -92.99
4 Rails | 23.77 | -34.99
5 Python, php | 23.77 | -34.23

用户搜索“PHP”(标题)、经纬度坐标和特定距离 50 英里,如果距离出现在前 3 条记录 id[1,2,3] 中,PHP 标题出现在前两条记录 id[ 1,2] 然后用户将得到结果作为计数 2. 我们如何在 mongo 数据库或 PHP mongo 数据库驱动程序查询中对此进行查询?我们将把我们的数据库结构附加为图像。如果您有任何疑问,请告诉我们。提前致谢。

最佳答案

在Mongodb/Driver/Query中可以这样使用

    $queryString = [
[
'$geoNear'=> [
'near'=> [ 'type'=> "Point", 'coordinates'=> [-73.86, 41.07 ] ],
'distanceField'=> "dist.calculated",
'maxDistance'=> '5000',
'includeLocs'=> "dist.location",
'num'=> 10000,
'spherical'=> true,
'query' => ['title'=> ['$regex' => 'sales' ]]
]
],
['$unwind'=> '$loc'],
['$group'=>['_id'=> '$loc', 'count'=>['$sum'=>1]]],
['$project'=>['res'=>['loc'=>'$_id', 'count'=>'$count']]],
['$group'=>['_id'=>null, 'total'=>['$sum'=>1], 'data'=>['$addToSet'=>'$res']]],
];
$conn = new \MongoDB\Driver\Manager("mongodb://username:password@localhost:2702/admin");
$command = new \MongoDB\Driver\Command([
'aggregate' => 'collection_name',
'pipeline' => $queryString
]);

$result = $conn->executeCommand('mongodbname', $command);

关于Mongodb Search geolocation with text filters and group by 在单个查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41820301/

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