gpt4 book ai didi

javascript - 如何在 rethinkdb 中单独剥离数组的元素?

转载 作者:行者123 更新时间:2023-11-30 17:28:44 25 4
gpt4 key购买 nike

我有这样的文件:

{
id:1,
"A": [
{
"C": "abc",
"D": [{X:"test"},{X:"test2"}]
},
{
"C": "fg",
"D":["X1"]
}
]
}

如何获取标签匹配 A-> D -> X 且值为“test”的文档的所有 ID。我可以使用 concatMap()但是当我使用它时,我无法获得“id”字段,也无法在 map 中使用它, 是否有类似的功能 $unwindMongodb的聚合框架?类似于:Querying array of nested objects

[原始问题]

{
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')

关于javascript - 如何在 rethinkdb 中单独剥离数组的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23656276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com