我在RethinkDB中的语句有点问题。
我有以下数据集:
{
candidate_details :{
"name" : "User test 1"
},
for_job : "long-id-1234"
}
{
candidate_details :{
"name" : "User test 10"
},
for_job : "long-id-56789"
}
{
candidate_details :{
"name" : "User test 9"
},
for_job : "long-id-1234"
}
当我申请以下声明时:
r.table("table").filter(lambda doc:
doc.has_fields({"for_job_details":{"name"}}) &
doc.has_fields({"candidate_details":{"name"}}) &
(
# candidate_query(doc) &
# job_query(doc)
doc['candidate_details']['name'].downcase().match('') &
doc['for_job'].downcase().match('long-id-1234')
) &
doc['company_id'].eq(company_id)
).run(rethink_conn)
它不会返回任何内容 我想让它返回所有具有工作ID“long-id-1234”且匹配“”
的“候选人”我做错了什么?
如果我消除了2个语句中的任何一个(匹配),它就可以了,但不能一起使用 我也想在一个过滤器中做到这一点 如果我做2个过滤器,它可以工作。
修改
问题不是由doc.has_fields
条件引起的。