c# - 如何在 RethinkDB 中获取给定谓词的元素索引
问题描述
您好,我有一个table
我想documents
在给定文档后获取所有内容的地方。
问题是我没有看到一个skipwhile
功能,你给了一个predicate
. 所以我必须首先找到我给定元素的索引。这是如何实现的?
例如:给定文件{"a":1 }
, {"b":2}
, {"a":33}
, {"c":44}
,{"d":33}
我想取最后一个之后的所有元素,a
所以我想得到:[ {"c":44},{"d":33}]
这是否可以通过RethinkDB
驱动程序实现,或者我需要在我拿到所有桌子后解决这个问题。
解决方案
所以我必须首先找到给定元素的索引。那是如何实现的?
您可以使用offsetsOf()函数。它返回与您搜索的元素匹配的索引数组。您可以通过以下方式获取文档的索引{"a":33}
:
r.expr([{"a":1 },{"b":2},{"a":33},{"c":44},{"d":33}])
.offsetsOf({"a":33}).nth(0)
要进一步迭代其余元素,您可以使用r.range()函数,如下所示:
r.expr([{"a":1 },{"b":2},{"a":33},{"c":44},{"d":33}])
.do(function(docs){
return docs.offsetsOf({"a":33}).nth(0)
.do(function(index){
return r.range(index.add(1), docs.count())
.map(function(i){
return docs.nth(i)
})
})
})
推荐阅读
- javascript - 如何要求在 ES6 模块中导出的常量?
- haskell - WellPointed 用于双 PreArrow 类
- css - 从上到下完全打印全屏覆盖,无需滚动
- c++ - 带有开放模板参数的 c++ 模板特化
- python - 'function'对象在django中没有属性'get'
- azure - Azure 函数连接到 Vnet 问题背后的 Azure Blob 存储
- python - 带有条件语句的 Python 布尔值
- c# - 将 System.Windows.Forms.Keys 转换为 Win32 虚拟键代码和修饰符
- page.js - 如何使用 page.js 在不完全重新加载的情况下导航到 URL?
- hyperledger-fabric - 在撤销用户证书时更新 Hyperledger Fabric 对等/通道