Rethinkdb 根据对象数组中属性的值筛选文档

Rethinkdb 根据对象数组中属性的值筛选文档,rethinkdb,rethinkdb-python,Rethinkdb,Rethinkdb Python,我在这里,我想不出这个 假设我有一个名为mydata的表,其中包含具有以下基本结构的文档: { "SomeAttirbute": "SomeValue", "team": [ { "name": "john" , "other": "stuff", } , { "name": "jane" , "other": "junk",

我在这里,我想不出这个

假设我有一个名为
mydata
的表,其中包含具有以下基本结构的文档:

{
    "SomeAttirbute": "SomeValue",
    "team": [
        {
            "name":  "john" ,
            "other": "stuff",
        } ,
        {
            "name":  "jane" ,
            "other": "junk",
        }
    ] ,
    ...
}

如何获取
mydata
表中的所有文档,这些文档具有
john
作为
team
数组中任何元素的
name
属性值?

这非常简单,需要一个简单的ReQL表达式。在JavaScript中,它是这样的:

const name='john';
...
r、 db('q50732045')
.table('mydata')
//下面的谓词可以从字面上理解为:
//“team”属性为序列的文档
//包含任何属性为'name'的元素的`
//等于给定的名称
.filter(doc=>doc('team')。包含(member=>member('name')。eq(name)))
//无需在数据资源管理器中调用run方法
;

我相信它可以很容易地用Python重新编写。

我认为这就是您想要的:

r.db(insert_database_name).table("mydata").filter(
    lambda doc: doc["team"]["name"].contains("john")
).run(con)
或:

r.db(insert_database_name).table("mydata").filter(
    r.row["team"]["name"].contains("john")
).run(con)