我的样本文档如下所示。

 sampledoc = { "name" : "shan",
                   "address" : {
                                "add1" : "",
                                "add2": null
                                }
                  }


如果我需要获取add2 =>的值

var valueR = sampledoc["address"].asbsondocument["add2"].asstring;


因此,如果存在价值,它就是完美。
如果address在mongodb中为bsonNull,那么它给出了强制转换错误。

所以我正在使用类似的条件

if(!sampledoc["address"].IsBsonNUll && !sampledoc["address"].asbsondocument["add2"].IsBsonNUll )
{
//do that stuff
}


这可以。
但是,如果嵌套文档的大小最高为3-4级,那么这些外观就不好了。

还有没有其他方法可以像add2字段为null一样验证整个行,或者不像我在IF条件中所做的那样单独进行验证,是否可以直接进行验证?

最佳答案

通常,您应该将文档转换为c#对象。您仍然需要检查内部对象是否为null,但看起来更干净。

09-18 11:22