如何将BsonDocument对象反序列化回类

ief*_*fpw 32 c# mongodb mongodb-.net-driver

从服务器获取后,如何将BsonDocument对象反序列化回类?

QueryDocument _document = new QueryDocument("key", "value");
MongoCursor<BsonDocument> _documentsReturned = _collection.FindAs<BsonDocument>(_document);

foreach (BsonDocument _document1 in _documentsReturned)
{
    //deserialize _document1
    //?
}
Run Code Online (Sandbox Code Playgroud)

我是否使用BsonReader进行反序列化?

And*_*ich 74

实际上有三种方式:

1.指定要直接加载的类型 FindAs<>

var docs = _collection.FindAs<MyType>(_document);
Run Code Online (Sandbox Code Playgroud)

2.通过BsonSerializer以下方式反序列化文档:

BsonSerializer.Deserialize<MyType>(doc);
Run Code Online (Sandbox Code Playgroud)

3.手动将bson文档映射到您的类:

var myClass = new Mytype();
myClass.Name = bsonDoc["name"].AsString;
Run Code Online (Sandbox Code Playgroud)

对于大多数情况,你可以采用第一种方法.但有时,当您的文档是非结构化的时,您可能需要采用第三种方法.

  • “FindAs&lt;&gt;()”不在接口“IMongoCollection”上,而“IMongoCollection”是从“GetCollection()”返回的接口。这是一个旧的答案,并且该方法不再存在,还是我遗漏了一些东西? (2认同)