Há também uma sobrecarga que permite fornecer um valor padrão:
BsonDocument document;
var firstName = (string) document["FirstName", null];
// or
var firstName = (string) document["FirstName", "N/A"];
o que é um pouco mais conveniente do que usar Contains quando tudo o que você deseja fazer é substituir um valor ausente por um valor padrão.
Editar: desde o 2.0.1 versão, foi preterido em favor de
GetValue
:var firstName = document.GetValue("FirstName", new BsonString(string.Empty)).AsString;