我不希望 mongodb 创建一个日期/时间字段,如果我传递一个空值,下面的代码适用于所有非日期类型但不适用于日期类型。它创建一个具有空值的日期/时间字段。这是我下面的 bsondocument 的代码片段
{"stringfield", stringfield= string.IsNullOrWhiteSpace(stringfield)?null:stringfield},
{"datetime", datetime.HasValue == false ?null:datetime}
注意:我没有使用任何类将 mongodb 字段映射到属性,而是直接创建一个 bsondocument 并将该文档插入 mongodb。
我尝试在下面的代码中使用约定包,但我想这仅适用于我创建类以将 mongofields 映射到属性时?
var pack = new ConventionPack();
var ignoreIfNull = new IgnoreIfNullConvention(true);
pack.Add(ignoreIfNull);
ConventionRegistry.Register("ignoreNulls", pack, t => true);
最佳答案
如果您不想插入带有空值的字段,请不要插入带有空值的字段。相反,根本不要将该字段放入文档中。意思是,而不是这个:
db.stuff.insert({ "a" : 1, "b" : null })
这样做
db.stuff.insert({ "a" : 1 })
无论如何插入字段的空值对您来说可能不是问题,因为它们的行为类似于查询的缺失值:
> db.test.drop()
> db.test.insert({ "a" : 1 })
> db.test.insert({ "a" : 1, "b" : null })
> db.test.count({ "b" : null })
2
关于c# - 如果字段为空,如何不在 mongodb 中插入字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27417445/