如何剥离一个数组的元素单独在rethinkdb
How to Peels off the elements of an array individually in rethinkdb?
我有这样的文档:
{
id:1,
"A": [
{
"C": "abc",
"D": [{X:"test"},{X:"test2"}]
},
{
"C": "fg",
"D":["X1"]
}
]
}
如何获取标签匹配A-> D -> X值为"test"的文档的所有id。我可以使用concatMap()
,但是当我使用它时,我无法获得"id"字段,也无法在map
中使用,Mongodb
的聚合框架中是否有类似$unwind
的功能?类似于:查询嵌套对象数组
{
id:2,
tags[{a:3,b:4},..]
}
您最初的问题有这个对象:
{ id: 2,
tags: [ { a: 3, b: 4 }, ... ] }
您可以构造一个谓词来查找相关文档,并将其传递给filter
。
r.table(...).filter(r.row('tags')('a').contains(3))('id')
在这种情况下,查询的('a')
部分,当应用于一个数组时,返回该数组中每个对象的a
字段的数组,如果有的话。
你编辑过的问题有一个更复杂的对象,但原理是一样的:
r.table(...).filter(
r.row('A')('D').concatMap(function(x){return x})('X').contains("test")
)('id')
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 表追加而不附加最后一个元素
- 如何在jQuery中获取元素的形式
- 我可以获得相对于被点击元素的确切点击位置吗
- 在函数中添加数组元素的数值
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 将视口底部滚动到元素底部
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何使用jquery处理php循环通过元素
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 在Jquery detachment()和appendTo()之后定位元素
- 在动态创建的元素上获取对特定选择器的引用
- 如何剥离一个数组的元素单独在rethinkdb