如果我已将以下json加载到BSON文档中:
{
"contact":
{ "firstname":"Pete"
,"surname":"Jones"
,"company":[{"name":"Virgin","notes":"some virgin notes"},{"name":"IBM","notes":"a great big IT company"}]
}
,"response":
{
"_id":"123"
,"profileid":"567"
,"localdate":"12 Apr 2011 14:34:23"
}
}
我可以使用以下方法检测给定元素是否存在:
if (suppliedDoc.Contains("_id"))
但我无法使用以下语法解决嵌套元素:
if (suppliedDoc.Contains("response._id"))
解决嵌套元素的正确语法是什么?有没有更好的方法来检测根或嵌套元素的存在?我正在使用官方的C#驱动程序。谢谢。
答案 0 :(得分:1)
你可能喜欢
之类的东西if (suppliedDoc.Contains("response")
&& suppliedDoc["reponse"].AsBsonDocument.Contains("_id"))
{
//...
}
我同意这有点尴尬。
在BsonDocument
上编写一个扩展方法并不需要花费太多精力,该扩展方法在其中带有带标点符号的字符串,将其按.
拆分,并使用上面显示的方法向下钻取