我有两个这样的文件:
//school
{
Name:""
Major:"",
EnrollYear:1983
}
//schools
{
id: "user/0",
ownerId:""
//an array that contains schools
schools: [
{
Name:""
Major:"",
EnrollYear:1983
}
.....
]
}
如何将一系列学校作为查询ownerIds的条件?
例如:如果我想得到那些在B学校上过学校但在D年就读于C学校的学生的所有者...(或更多),那么我的查询条件可能是这样的:< / p>
condition: [
{
Name:"A"
....
EnrollYear:B
},
{
Name:"C"
...
EnrollYear:D
}
]
答案 0 :(得分:1)
rethinkdb邮件列表中的人给出了正确答案:
r.table('schools').filter(function(row){
return row('schools').pluck('name', 'enrollyear').contains(function(school){
return CONDITION.pluck('name', 'enrollyear').contains(school);
})
})
答案 1 :(得分:0)
您可以像这样构建一个查询
r.table("users").filter(function(user) {
return user("schools").contains(function(school) {
return school("Name").eq(A).and("school("EnrollYear").eq(B)
}).and(
user("schools").contains(function(school) {
return school("Name").eq(C).and("school("EnrollYear").eq(D)
})
)
})
另外,在您的情况下,您与用户和学校之间存在“多对多”关系。在这种情况下,更好的方法是创建第三个表“链接”,以保存用户和学校之间的关系。它会让事情变得更容易查询。