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)