Я хочу отфильтровать результат с помощью и / или комбинации дочерних запросов. Как я могу это сделать?
is_active: true
category_id: [1,2,3,4]
brand: "addidas"
SubscriberID=4,
gender: "male"`enter code here`
InvoiceDetails: [
{
"ID" : 1,
"InvoiceID" : 1,
"Qty" : "1",
"Rate" : 1
},
{
"ID" : 2,
"InvoiceID" : 1,
"Qty" : "1",
"Rate" : 1
}]
SQL:
SELECT .... WHERE
SubscriberID= 4 AND InvoiceDetails.InvoiceID =2
OR (brand='addidas' AND gender='male')
Как написать выше SQL, используя C # NEST HighLevel?
Я нашел вложенный запрос, но не нашел работоспособного примера?
Я пробовал ниже запрос
.Query(q =>
q.Bool
(
b => b.Filter
(
f => (
f.Term(t => t.Field(fd => fd.SubscriberID).Value(8)) &&
f.Term(t => t.Field(fd => fd.CompanyID).Value(2019))
&& f.Nested(
n => n.Path(p => p.InvoiceDetails)
.Query
(
c => c.Term
(
t => t.Field(fd => fd.InvoiceDetails.FirstOrDefault().InvoiceID).Value("121123")
)
)
)
//f.Term(t => t.Field("InvoiceDetails.InvoiceID").Value("1015312"))
)
)
)
)
Insted of Nested query. Если я напишу запрос ниже, он будет работать. Я не думаю, что я ошибся в Nested Query.
f.Term(t => t.Field("InvoiceDetails.InvoiceID").Value("1015312"))
Дополнительная информация: Ниже приведен мой класс POCO, в котором я имею атрибут Nested выше свойства.
public class Invoice
{
public long ID { get; set; }
[Nested]
[PropertyName("InvoiceDetails")]
public List<InvoiceDetails> InvoiceDetails { get; set; }
}
public class InvoiceDetails
{
public long ID { get; set; }
[Number(NumberType.Long, Name = "InvoiceID")]
public long InvoiceID { get; set; }
}