У меня есть объект, похожий на тот, что показан ниже в C#. Я хотел бы найти подходящие объекты персонажа, которые содержат элемент, соответствующий указанному type
, и этот элемент sourceId
также присутствует в массиве предоставленных sourceIds
:
Person: {
id: 1,
items: [
{
type: "one",
sourceId: 2
},
{
type: "two"
sourceId: 3
}
]
}
Пока я пришел с этим:
var filter = Builders<Person>.Filter.In(p => p.items.Where(i => i.type == "one").FirstOrDefault().sourceId, providedIds);
var results = PersonCollection.FindAsync(filter);
При запуске я получаю эту ошибку:
Невозможно определить информацию сериализации для p => p.items.Where (i => (i.type == "one")). FirstOrDefault (). sourceId
Из того, что я смог найти, кажется, что драйвер Mon go не понимает FirstOrDefault
(или, возможно, где также). Как я могу выполнить sh этот запрос?