MongoDB C# - 获取不存在的Element的BsonDocument

goo*_*ere 6 c# element exists mongodb

所以我有一个BsonDocument b(假设它有FirstName,LastName,Age),你可以访问它作为b ["FirstName"]等...

如果我尝试做b ["asdfasdf"](当然不存在),而不是返回null,它会使应用程序出错.什么是正确的检查方法?我真的需要尝试/捕获吗?

Rob*_*tam 18

还有一个重载,允许您提供默认值:

BsonDocument document;
var firstName = (string) document["FirstName", null];
// or
var firstName = (string) document["FirstName", "N/A"];
Run Code Online (Sandbox Code Playgroud)

当你想要做的就是使用默认值替换缺失值时,使用Contains稍微方便一些.

编辑: 自2.0.1版本以来,它已被弃用,赞成GetValue:

var firstName = document.GetValue("FirstName", new BsonString(string.Empty)).AsString;
Run Code Online (Sandbox Code Playgroud)


Bry*_*isi 6

尝试Contains方法:

var b = new BsonDocument();
var exists = b.Contains("asdfasdf");
Run Code Online (Sandbox Code Playgroud)


Phi*_*röm 5

罗伯特回答的更新,使用 C# 2.0 驱动程序的正确语法是:

var firstName = report.GetValue("FirstName", null);
Run Code Online (Sandbox Code Playgroud)