У меня есть эта модель:
public class DraftItem
{
public List<DraftNode> Nodes{ get; set; }
}
public class DraftNodes
{
...
public List<DraftTerm> Properties{ get; set; }
}
public class DraftTerm
{
public ObjectId Id{ get; set; }
public String Name { get; set; }
}
Мне нужно отфильтровать в mongoDB свойства на основе DraftTerm - Id
Я пробовал вот так сделать фильтр, но он не работает:
FilterDefinition<DraftNodes> filter = Builders<DraftNodes>.Filter.ElemMatch(z => z.Properties, a => a.Id == id);
await db.GetCollection<DraftItem>("collection name")
.Find(filter )
.ForEachAsync(async document =>
{..}
В mongoDB это работает, если я фильтрую так:
db.getCollection('collection name').find({'nodes.properties.id': ObjectId('...')})
Есть ли способ фильтрации с помощью ElemMatch и Filter?