У меня есть коллекция, которая хранит несколько различных типов, которые все наследуются от BaseEntity, среди которых тип LoginUser. Следующий код в MyQuery
public IMongoQueryable<LoginUser> LoginUserQuery
{
get
{
return _database.GetCollection<BaseEntity>(collectionName).AsQueryable<BaseEntity>().OfType<LoginUser>();
}
}
void MyQuery()
{
var user = LoginUserQuery.Where(item => item.SomeProperty == "myemail@example.com").FirstOrDefaultAsync();
}
выдает ошибку
$ match в настоящее время поддерживается только тогда, когда это первый и единственный этап конвейера агрегации. Пожалуйста, измените структуру запроса, чтобы объединить несколько этапов $ match в один этап $ match.
Запрос, как видно из исключения,
{{"aggregate": "eMeetings", "pipe": [{"$ match": {"_t": "LoginUser"}}, {"$ match": {"NormalizedEmail": "myemail @ example .com "}}]," курсор ": {}}}
Можно ли это как-то исправить? Или это будет исправлено этой недавно закрытой проблемой? https://feedback.azure.com/forums/263030-azure-cosmos-db/suggestions/34115251-add-support-for-match-in-aggregation-pipeline-no