mongodb - 如何同时使用 MongoDB 的 $text 和 $nearSphere 搜索运算符?
问题描述
我有一些带有一些字符串字段和一些嵌入式 GeoJSON 点的文档,如下所示:
{
title: "",
description: "",
geometry: {
type: "Point",
coordinates: [0,0]
}
}
因此,根据文档,MongoDB 的全文运算符和地理搜索运算符不能在同一个查询中使用。
这对我来说很有意义,因为他们都试图以不同的方式对相同的结果进行排序,所以有什么好的替代方法:
- 首先,过滤用户提供的搜索词匹配的文档
- 然后,根据与用户提供的坐标的距离对匹配的文档进行排序
换句话说,我想简单地使用全文搜索算法来过滤而不是排序,而地理搜索操作则相反。原则上这似乎是合理的,当然许多位置感知应用程序都允许您这样做(例如 rightmove、deliveroo、airbnb 等),那么最好的方法是什么?
我认为我可以通过在多个字段中使用和正则表达式值来做一些可以接受的好事,但我怀疑结果是否会像使用本机搜索算法一样好或一样快。$or
聚合似乎对此没有帮助,尽管我开始阅读有关 map-reduce 的内容,这似乎可以提供一个可能的解决方案。
解决方案
推荐阅读
- java - 如果它更接近我设置的值,有没有办法打印一个值?
- matlab - 如何使用 2D 矩阵作为 4D 矩阵的索引?
- r - isTRUE 和 isFALSE 在 dplyr mutate 函数中没有按预期工作
- java - 过滤后我的 RecyclerView 不断重置
- bash - ssh to list of nodes in bash
- google-apps-script - 删除列 Google Apps 脚本
- javascript - How can I check if an array has two or more of the same unknown strings in it?
- elixir - 你如何在 exs 文件中定义混合任务并仍然运行它?
- python-3.x - 在 python pandas 中为 int 列保留空白值
- html - WebScraping with VBA - change value of InputBox