ruby-on-rails - 没有这样的命令:'geoNear',当将 geo_near 与 mongoid 一起使用时
问题描述
我想使用 geo_near 在我的应用程序中进行环视功能我已经在我的模型上创建了索引
...
field :location, Type: Array
index({ location: "2d" })
self.create_indexes
我已经跑了
rake db:mongoid:create_indexes
这是我在控制器中使用的代码
@merchants = Merchant.geo_near([coordinate.first.to_f, coordinate.last.to_f]).max_distance(50)
但我得到错误说:
Mongo::Error::OperationFailure(没有这样的命令:'geoNear' (59)(在 localhost:27017 上)(在 localhost:27017 上)):
我使用 mongoid 7、ruby on rails 6.0.2、ruby 2.6.3、mongo 4.2.2
您可以在此处查看完整的日志跟踪trace_log.txt
解决方案
$geoNear 命令(这是 Mongoid 的 geo_near 方法调用的)已在 MongoDB 服务器 4.2 中删除。请参阅https://docs.mongodb.com/manual/release-notes/4.2-compatibility/#remove-support-for-the-geonear-command。
等效功能在聚合管道阶段可用 - 请参阅https://docs.mongodb.com/manual/reference/operator/aggregation/geoNear/。
推荐阅读
- php - 使用 PHP 在 WordPress 站点中搜索字符串并替换为新字符串
- laravel - 数据透视表中的 detach()
- python-3.x - ReadProcessMemory 无效句柄
- amazon-web-services - AWS S3 Cloudormation 更新堆栈失败
- python - Python:venn3_circles:如何在 Venn 3 圆图中获取交点的值
- python-3.x - 如何在while循环后将变量重置为初始值
- javascript - 在基于 typescript 的项目中使用 Vue js 组件
- javascript - 我想要 addclass 时背景图像过渡淡入淡出
- javascript - 将推送通知订阅信息从 Web 应用程序安全地发送到服务器
- apache-spark - 由于 javax.net.ssl.SSLHandshakeException 初始化 SparkContext 时出错