0

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

4

1 回答 1

1

你可能在追求类似的东西

if (suppliedDoc.Contains("response")
    && suppliedDoc["reponse"].AsBsonDocument.Contains("_id"))
{
    //...
}

我同意这有点尴尬。

虽然编写一个扩展方法并不需要太多的努力,BsonDocument它接受一个带有标点符号的字符串,用 分割它.,然后使用上面显示的方法向下钻取。

于 2011-04-20T11:28:30.193 回答