首页 > 解决方案 > 如何重构 Mongodb Linq 查询以在 Cosmos Db 中工作?

问题描述

我有一个集合,其中存储了几种从 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 阶段。

异常中看到的查询是

{{“聚合”:“eMeetings”,“管道”:[{“$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

标签: mongodbazureazure-cosmosdb

解决方案


推荐阅读