rethinkdb 带有过滤器和 getNearest 命令

2024-02-26

如何对其他命令(例如过滤器命令)的结果执行 getNearest 查询?

var point = r.point(-122.422876,37.777128);  
r.db('test').table('users').
   filter({tags : 'tag'}).
   getNearest(point, {index: 'geodata', maxResults: 30, unit :'km'})

我有一个“用户”表:

 [ 
   {id: 1, tags : ['music', 'cups'], geodata: r.point()} 
   {id: 2, tags: ['music', 'play'], geodata: r.point()} 
 ] 

首先,我想按“标签”字段进行过滤,然后返回最近的。

我指定的查询不正确,返回以下错误:“Rql RuntimeError:预期类型 TABLE 但发现 SELECTION"


您的查询抛出错误的原因是.getNearest http://rethinkdb.com/api/javascript/get_nearest/仅适用于表格。文档就是这么说的。

选项1

您只需颠倒命令的顺序即可解决您的问题:

var point = r.point(-122.422876,37.777128);  
r.db('test')
 .table('users')
 .getNearest(point, {index: 'geodata', maxResults: 30, unit :'km'})
 .filter({tags : 'tag'})

这有效是因为.getNearest返回一个数组并且.filter可以在数组上工作。

var point = r.point(-122.422876,37.777128);  
r.db('test')
 .table('users')
 .getNearest(point, {index: 'geodata', unit :'km'})
 .filter({tags : 'tag'})
 .limit(30)

这种方法的问题在于,为了保证所有可能的结果都存在,你不能传递一个maxResultsgetNearest 的选项,这意味着将查询每一行,然后进行过滤。

当大多数项目将通过过滤器时,此方案最有效。

根据您的数据,还可以编写一个函数来增加maxResults增量直到获得所需的所有结果,但这可能很复杂而且不太优雅。

Option 2

如果过滤器要过滤掉大部分结果,那么您可以使用以下方式过滤结果getAll http://rethinkdb.com/api/javascript/get_all/(创建一个tags索引)并有getAll首先过滤结果,然后根据距离对结果进行排序:

var point = r.point(-122.422876,37.777128);
r.table('users')
 .getAll('tag', {index: 'tags'})
 .orderBy(r.row('geodata')
 .distance(point))
 .limit(30)

数据类型

您始终可以使用以下方法随时获取任何内容的类型.typeOf http://rethinkdb.com/api/javascript/type_of/方法。

例子:

r.db('test')
 .table('users').typeOf() // "TABLE"

r.db('test')
 .table('users')
 .filter({tags : 'tag'}).typeOf() // "STREAM"

如果你想了解更多关于ReQL数据类型的信息,你可以看看这个博客文章 http://blog.hiphipjorge.com/data-types-in-rethinkdb-whats-the-difference/我写了一篇文章,解释了 ReQL 数据类型以及它们的不同之处。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

rethinkdb 带有过滤器和 getNearest 命令 的相关文章

  • 使用欧氏距离在 numpy 数组列表中查找 numpy 数组的最近邻居

    我有一个 n 维向量 我想使用欧几里得距离在 n 维向量列表中找到它的 k 个最近邻 我编写了以下代码 k 10 它可以工作 但运行速度太慢 我想知道是否有更优化的解决方案 def nearest neighbors value array
  • 位串最近邻搜索

    我有数十万个长度为 32 位的稀疏位串 我想对它们进行最近邻搜索 并且查找性能至关重要 我一直在阅读各种算法 但它们似乎针对文本字符串而不是二进制字符串 我认为局部敏感散列或频谱散列似乎都是不错的选择 或者我可以考虑压缩 这些中的任何一个都
  • 找到两组矩阵之间最近的点对

    假设我有两组矩阵 A and B 每个矩阵内部都包含几个点坐标 我想找出其中的点B最近到A并输出元胞数组C相应地列出最近的点对坐标和一个元胞数组D注册未配对的位置 我该怎么做 更具体地说 这就是我想要的 两组矩阵包含点xy坐标 A 1 2
  • Matlab 中的 KNN 回归

    Matlab中的k近邻回归函数是什么 只有knn分类功能可用吗 有人知道与此相关的任何有用的文献吗 Regards Farideh 我不相信 k NN 回归算法是直接在 matlab 中实现的 但是如果你进行一些谷歌搜索 你可以找到一些有效
  • Logstash mutate 添加 json 中的所有字段

    我正在使用 Logstash 插件 logstash input rethinkdb 该插件获取数据库中的所有编辑并输出包含以下结构的 json 对象 db itjobs table countries old val null new v
  • Chrome/Safari 中的图像插值模式?

    我需要使用最近邻调整大小来渲染图像 而不是当前使用的双三次方式 我目前使用以下内容 ms interpolation mode nearest neighbor image rendering moz crisp edges 这适用于 IE
  • 在字典中查找整数最近邻

    我有一个dict需要整数键 a a 1 100 a 55 101 a 127 102 我希望在询问时能够选择最近的邻居 a 20 should return a 1 100 a 58 should return a 55 101 a 167
  • RethinkDB - 更新嵌套数组

    我有一个调查表 如下所示 id Id date Date clients client id Id contacts contact id Id score Number feedback String email String 我需要更新
  • 给定范围内的最近邻居

    我面临的问题是快速找到给定范围内最近的邻居 数据集示例 id string float 0 AA 0 1 12 BB 0 5 2 CC 0 3 102 AA 1 1 33 AA 2 8 17 AA 0 5 对于每一行 打印满足以下条件的行数
  • 如何在 RethinkDB 中通过对象数组查询多索引

    我正在使用一个看起来像这样的数据集 bitrates format mp3 rate 128K format aac rate 192K details id 1 name For Those About To Rock We Salute
  • 如何使用 R 中的加权(调查)数据制作漂亮的无边界地理专题/热图,可能对点观测使用空间平滑

    自从约书亚 卡茨发表这些方言地图 http spark rstudio com jkatz SurveyMaps 你可以找到 using 哈佛大学方言调查 http www4 uwm edu FLL linguistics dialect
  • Python 中的最近邻搜索,无需 k-d 树

    我从 C 背景开始学习 Python 我正在寻找一种快速而简单的方法来查找多维点的 2D numpy 数组 也是 numpy 数组 中某些多维查询点的最近 最近邻居 我知道 scipy 有一个 k d 树 但我不认为这是我想要的 首先 我将
  • 错误:FROM 中的子查询无法引用相同查询级别的其他关系

    我正在使用 PostgreSQL 9 我想找到表内最近的邻居RP对于所有元组RQ 比较日期 t 但我收到此错误 错误 FROM 中的子查询无法引用同一查询的其他关系 等级 使用此查询 SELECT FROM RQ SELECT FROM R
  • rethinkdb 带有过滤器和 getNearest 命令

    如何对其他命令 例如过滤器命令 的结果执行 getNearest 查询 var point r point 122 422876 37 777128 r db test table users filter tags tag getNear
  • 为什么 scikit-learn 的最近邻似乎没有返回正确的余弦相似距离?

    我正在尝试使用 scikit 的最近邻实现从随机值矩阵中查找与给定列向量最接近的列向量 该代码应该找到第 21 列的最近邻居 然后检查这些邻居与第 21 列的实际余弦相似度 from sklearn neighbors import Nea
  • 如何在 500,000 个点的 100 维空间中找到最近的 2 个点?

    我有一个 100 维空间中有 500 000 个点的数据库 我想找到最接近的 2 个点 我该怎么做 更新 空间是欧几里得的 抱歉 并感谢所有的答案 顺便说一句 这不是家庭作业 里面有一章算法简介 http en wikipedia org
  • 如何从 RethinkDB 文档中删除键?

    我正在尝试从 RethinkDB 文档中删除一个键 我的方法 没有用 r db db table user replace function row delete row key return row 其他方法 r db db table
  • 在 C++ 中旋转图像而不使用 OpenCV 函数

    描述 我正在尝试在不使用 C 中的 OpenCV 函数的情况下旋转图像 旋转中心不必是图像的中心 它可能是不同的点 偏离图像中心 到目前为止 我遵循各种来源进行图像插值 我知道source https stackoverflow com a
  • 四叉树和Kd树

    我有一组不同位置的纬度和经度 也知道我当前位置的纬度和经度 我必须找出距离当前位置最近的地方 Kdtree 和四叉树中哪种算法最适合从纬度和经度集合中找出邻居位置 一种相对于另一种有什么优势 我们如何在 C 中将这些实现到算法中以实现上述目
  • Linux 中如何确定哪个进程正在使用某个端口

    我目前正在其默认端口上运行 RethinkDB 因为如果我将浏览器指向localhost 8080我看到 RethinkDB Web 界面 我想关闭 RethinkDB 并使用以下命令在另一个端口上重新打开它 port offset争论 然

随机推荐