我正在尝试获取Author
详细信息,例如他/她的书籍类别为“科学”,并且价格> 20 或页面> 300。
*Author*
id
name
country
books
*Book*
id
name
category
price
edition
pages
author_id
使用如下查询:
authorRepository.find(filter, {})
并且filter
作为:
{
"books": {
"$and": [{
"category": {
"$eq": "Science"
}
}, {
"$or": [{
"price": { $eq: 20 }
}, {
"pages": { $gt: 300 }
}
]
}
]
}
}
SQL查询变为:
select "e0"."*" from "author" as "e0" left join "book" as "e1" on "e0"."id" = "e1"."author_id"
where "e1"."category" = 'Science' and ("e0"."price" = 20 or "e0"."pages" > 300)
不知道为什么嵌套$or
条件应用于e0
( Author
) 而不是e1
( Book
)。