以下是我使用的查询数据库的代码。变量 "filter" 是一个 linq 表达式。似乎可以使用此代码使用 ObjectId 或文档中可能存在的任何其他值获取数据。但是,当我存储一个 Guid 并尝试检索它时,没有返回结果。这里是否有什么问题,或者在涉及 Guid 时 MongoDB 本身是否存在限制?
_dbSet = mongoDatabase.GetCollection(collectionName);
var query = _dbSet.AsQueryable<TEntity>();
if (filter != null)
{
query = query.Where(filter);
}
return query.ToList();
编辑:
再进一步澄清一下。我已经尝试了这里最后一条评论中提供的解决方案:MongoDB和Linq Where子句中的Guid。但是,这并没有给我任何结果。我正在尝试检索的数据仅包含_id字段。
{
"_id" : LUUID("e5bdda3b-ae6a-d942-bd43-c8c7a6803096")
}
用于检索此对象的实体仅具有名为Id的属性,据我了解,它对应Mongo文档中的_id字段。因此,我还尝试使用Id属性进行检索,但仍没有结果。
filter
是什么,同样的过滤器在MongoDB控制台中是否会给您所需的结果? - Brandon Buckentity=>entity.Id == Guid
- jjkimnew ObjectID(myGuidString)
以执行查询。再次强调,这可能不适用于C#,但这是一个想法。 - Brandon Buck