我有一个json文档,我使用mongoimport命令输入了我的mongo db。 我将它设置为" MyDocId",在mongo中查看它,_id被正确设置。 在我的C#代码中,我想使用此_id来阅读本文档:
ObjectId id = ObjectId.Parse("MyDocId");
我在上面的代码中得到了一个例外
答案 0 :(得分:5)
您可能需要在属性上使用Bson属性。
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
在这个已回答的问题中,对这些属性有很好的解释
答案 1 :(得分:0)
ObjectId解析只会解析具有valid format的字符串。在您的情况下,如果文档的{{1}}是一个字符串,您不需要将其解析为ObjectId,只需在查询中使用字符串值。
答案 2 :(得分:0)
从 MongoDB.Driver
的 2.9 版开始,您还可以使用内置约定 StringIdStoredAsObjectIdConvention
var pack = new ConventionPack
{
new StringIdStoredAsObjectIdConvention()
};
ConventionRegistry.Register("Custom Convention", pack, t => true);