У меня есть документ, содержащий список узлов, и мне нужно вернуть документы, отфильтрованные по нескольким узлам.
например.
У меня есть 2 документа
doc1 = {nodes: [{name:"node1", state:"1"}, {name:"node2", state:"2"]}
doc2 = {nodes: [{name:"node1", state:"1"}, {name:"node2", state:"1"]}
Я хотел бы иметь возможность создать индекс, который будет выбирать документ на основе состояния обоих узлов:
то есть я бы хотел сделать что-то подобное:
from doc in docs
from node in doc.nodes
where (node.name == "node1" && node.state == "1")
&& (node.name == "node2" && node.state != "2")
select new { doc }
Это не работает, и я не нашел хороших примеров, делающих подобные вещи.
Извините за неясность:
from doc in docs.CorporateInsuranceOffer
from node in doc.offerDetails.nodes
where (node.name == "radgjof" && node.state == "state4" )
&& (node.name == "verdlagning" && node.state != "state4" )
select new {created = doc.offerInfo.created, offerId = doc.offerInfo.offerId, changed = doc.offerInfo.changed, kennitala = doc.offerInfo.kennitala, owner = doc.offerInfo.owner }
Это фактический запрос, он не вызывает ошибок, он просто не возвращает данных (но должен вернуть 2 документа - проверено с использованием одного из этих источников одновременно и сравнения результатов).
Кажется, моя проблема в том, что я не могу установить условия для двух разных узлов в одном документе.