MongoDB - 检测代码中是否存在JSON嵌套元素

时间:2011-04-20 10:43:56

标签: json mongodb mongodb-.net-driver

如果我已将以下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#驱动程序。谢谢。

1 个答案:

答案 0 :(得分:1)

你可能喜欢

之类的东西
if (suppliedDoc.Contains("response")
    && suppliedDoc["reponse"].AsBsonDocument.Contains("_id"))
{
    //...
}

我同意这有点尴尬。

BsonDocument上编写一个扩展方法并不需要花费太多精力,该扩展方法在其中带有带标点符号的字符串,将其按.拆分,并使用上面显示的方法向下钻取