Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

How do I deserialize a BsonDocument object back to the class after getting it from the server?

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

foreach (BsonDocument _document1 in _documentsReturned)
{
    //deserialize _document1
    //?
}

Do I deserialize using a BsonReader?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
408 views
Welcome To Ask or Share your Answers For Others

1 Answer

There are three ways actually:

1.Specify type you want to load directly in FindAs<>

var docs = _collection.FindAs<MyType>(_document);

2.Deserialize document via BsonSerializer:

BsonSerializer.Deserialize<MyType>(doc);

3.Map bson document manually to your class:

var myClass = new Mytype();
myClass.Name = bsonDoc["name"].AsString;

For most cases you are okay with first approach. But sometimes, when your documents is unstructured, you may need third approach.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...