使用字符串为mongodb _id

Pac*_*man 2 c# mongodb

我有一个json文档,我使用mongoimport命令进入我的mongo db.我将它的_id设置为"MyDocId",在mongo中查看它,_id已正确设置.在我的C#代码中,我想使用此_id来阅读本文档:

ObjectId id = ObjectId.Parse("MyDocId");
Run Code Online (Sandbox Code Playgroud)

我在上面的代码中得到一个例外

pie*_*eru 6

您可能需要在属性上使用Bson属性.

[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
Run Code Online (Sandbox Code Playgroud)

在这个已回答的问题中,对这些属性有很好的解释

BsonId vs BsonRepresentation


Szy*_*onB 5

从2.9版本开始MongoDB.Driver你还可以使用内置约定StringIdStoredAsObjectIdConvention

        var pack = new ConventionPack
        {
            new StringIdStoredAsObjectIdConvention()
        };

        ConventionRegistry.Register("Custom Convention", pack, t => true);
Run Code Online (Sandbox Code Playgroud)