MongoDB和C# - 如何查询与给定ID值列表匹配的所有文档?

时间:2011-08-18 18:08:05

标签: c# mongodb

我已经设置了数据库,因此我的类的ID属性是文档的ID:

BsonClassMap.RegisterClassMap<TestClass>(cm =>
{
    cm.AutoMap();
    cm.SetIdMember(cm.GetMemberMap(c => c.ID));
});

要查询特定文档,我可以成功使用:

collection.FindOneById(123);

但是,如果我尝试等效的查询:

collection.FindOne(Query.EQ("ID", 123));

不会返回任何结果。

如何将文档ID作为查询的一部分包含在内和/或如何查询与给定ID集匹配的文档列表?我是否必须逐个查询它们?

修改 为了澄清,我不是在谈论内部MongoDB分配的对象ID,我在谈论用户分配的ID作为标识该文档的唯一密钥/ id以供以后检索。

1 个答案:

答案 0 :(得分:2)

如果您正在谈论MongoDB使用的内部ID,那么它特别是BsonObjectId,需要作为一个查询。此外,MongoDB文档的ID字段是小写的,并以下划线开头:_id这样的代码应该有效:

collection.FindOne(Query.EQ("_id", ObjectId.Parse("4dad901291c2949e7a5b6aa8")));