Существует также перегрузка, позволяющая указать значение по умолчанию:
BsonDocument document;
var firstName = (string) document["FirstName", null];
// or
var firstName = (string) document["FirstName", "N/A"];
, что несколько удобнее, чем использование Contains, когда все, что вы хотите сделать, это заменить отсутствующее значение значением по умолчанию.
Редактировать: начиная с версии 2.0.1 , она устарела в пользу GetValue
:
var firstName = document.GetValue("FirstName", new BsonString(string.Empty)).AsString;