Я задавал этот вопрос ранее относительно SQL Server: Сложный запрос SQL - поиск элементов, соответствующих нескольким различным внешним ключам
По сути, мне нужно иметь возможность находить продукты, которые соответствуют нескольким критериям,У меня есть сценарий, в котором мне нужно найти продукты, которые соответствуют каждой из нескольких категорий и встречаются в нескольких счетах.
Решение было довольно сложным набором союзов, который сводится к подсчету количества совпадений продукта скритерии и фильтрация для элементов, количество которых соответствует количеству критериев.
; with data (ID, Count) as (
select pc.ProductID, count(*) from ProductCategories pc (nolock)
inner join @categoryIDs /*table valued param*/ c on c.ID = pc.CategoryID
union all
select ip.ProductID, count(*) from InvoiceProducts ip (nolock)
inner join @invoiceIDs i on i.ID = ip.InvoiceID
)
select d.ID from data d
group by d.ID
having sum(d.Count) = @matchcount
Но сейчас я рассматриваю поставщика NoSQL.Итак, мой вопрос: как мне создать индексную функцию для соответствия запросу такого типа в RavenDB (или каком-либо другом проекте NoSQL)?