以mongo集合中的以下摘录为例:
Name
我想从此集合中提取null
字段并将其放在C#对象中。但我不知道如何管理if (foo.Contains("IsBasedOnProduct"))
{
fooToExcel.Name = foo["IsBasedOnProduct"].AsBsonDocument.Contains("Name") ? foo["IsBasedOnProduct"]["Name"].AsString : string.Empty;
}
值。
这就是我在C#应用程序中所做的事情:
Name
当null
为System.ArgumentNullException
时,我抛出一个string.Empty
我如何解决这个问题,以便在值null
时放置{% for item in var:low_price_low_stock_goods %}
{% endfor %}
?
答案 0 :(得分:1)
使用以下代码快照修复它:
if (foo.Contains("IsBasedOnProduct") && foo["IsBasedOnProduct"].BsonType != BsonType.Null)
{
fooToExcel.Name = foo["IsBasedOnProduct"].AsBsonDocument.Contains("Name")&& foo["IsBasedOnProduct"]["Name"].BsonType != BsonType.Null ?
foo["IsBasedOnProduct"]["Name"].AsString : string.Empty;
}
答案 1 :(得分:0)
在此之前你必须将BJson转换为JSON,在条件之后检查。
答案 2 :(得分:0)
@Xavier W answer正确另外还有一种解决方案需要检查,BsonValue
是NULL
使用IsBsonNull
属性 [自MongoDB.Bson版本2.3.0起]
解决方法:
if (foo.Contains("IsBasedOnProduct") && !foo["IsBasedOnProduct"].IsBsonNull)
{
fooToExcel.Name = (foo["IsBasedOnProduct"].AsBsonDocument.Contains("Name") && !foo["IsBasedOnProduct"]["Name"].IsBsonNull) ?
foo["IsBasedOnProduct"]["Name"].AsString : string.Empty;
}
IsBsonNull
属性的文档-> https://mongodb.github.io/mongo-csharp-driver/2.3/apidocs/html/P_MongoDB_Bson_BsonValue_IsBsonNull.htm