MongoDB c#驱动程序FilterDefinition不起作用

时间:2017-04-04 09:55:51

标签: c# mongodb

我试图用Mongo Db和c#实现一个通用的存储库,来查询音乐albuns的集合,这是我第一次使用mongodb,所以可能我错过了一些概念。

我的Albun集合包含带有“标题”的文档,我试图查询具有特定标题的相册。我在我的存储库中使用此方法来查询单个对象:

public async Task<GetOneResult<TEntity>> GetOne<TEntity>(FilterDefinition<TEntity> filter) where TEntity : class, new()
    {
        var res = new GetOneResult<TEntity>();
        try
        {
            var collection = GetCollection<TEntity>();
            var entity = await collection.Find(filter).SingleOrDefaultAsync();
            if (entity != null)
            {
                res.Entity = entity;
            }
            res.Success = true;
            return res;
        }
        catch (Exception ex)
        {
            return res;
        }
    }

我试着通过创建像这样的FIlterDefinition来检索相册:

_context = new LibaryRepository();
        FilterDefinition<Book> filter = Builders<Book>.Filter.Eq("Title", "Besos de Perro");
        GetOneResult<Book> book = await _context.GetOne<Book>(filter);

我知道在我的MongoDb中有一个带有此标题的相册,连接已正确设置并连接但查询始终返回null,因为它没有找到它。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您是否尝试同步调用find? (通过删除异步和等待)