如果为 null 或为空,则不插入字段
Do not insert field if null or empty
我有一个 C# class 有一些字段,其中一些是空的。那些为空的我不想用空值插入到数据库中。我根本不想将它们插入数据库。
我该如何实现?
class User
{
public string FirstName;
public string LastName;
public string MidName;
}
并非每个用户都有一个 MidName,但是 Mongo 将 MidName 字段上的空值插入到数据库中。
使用恰当命名的 [BsonIgnoreIfNull]
attribute:
class User
{
public string FirstName;
public string LastName;
[BsonIgnoreIfNull]
public string MidName;
}
确保您足够早地注册新的会议包。如果在您注册新的会议包之前已经映射了 类,则不会更新它们。
这是我的测试代码:
public class C
{
public int Id { get; set; }
public string S { get; set; }
}
public static class Program
{
public static void Main(string[] args)
{
ConventionRegistry.Register(
"Ignore null values",
new ConventionPack
{
new IgnoreIfNullConvention(true)
},
t => true);
var client = new MongoClient("mongodb://localhost");
var server = client.GetServer();
var database = server.GetDatabase("test");
var collection = database.GetCollection<C>("test");
collection.Drop();
collection.Insert(new C { Id = 1, S = null });
Console.WriteLine("Press Enter to continue.");
Console.ReadLine();
}
}
以下文档已插入数据库:
db.test.find()
{ "_id" : 1 }
来源:https://groups.google.com/forum/#!topic/mongodb-user/7-NFXBNeEXs
我有一个 C# class 有一些字段,其中一些是空的。那些为空的我不想用空值插入到数据库中。我根本不想将它们插入数据库。 我该如何实现?
class User
{
public string FirstName;
public string LastName;
public string MidName;
}
并非每个用户都有一个 MidName,但是 Mongo 将 MidName 字段上的空值插入到数据库中。
使用恰当命名的 [BsonIgnoreIfNull]
attribute:
class User
{
public string FirstName;
public string LastName;
[BsonIgnoreIfNull]
public string MidName;
}
确保您足够早地注册新的会议包。如果在您注册新的会议包之前已经映射了 类,则不会更新它们。
这是我的测试代码:
public class C
{
public int Id { get; set; }
public string S { get; set; }
}
public static class Program
{
public static void Main(string[] args)
{
ConventionRegistry.Register(
"Ignore null values",
new ConventionPack
{
new IgnoreIfNullConvention(true)
},
t => true);
var client = new MongoClient("mongodb://localhost");
var server = client.GetServer();
var database = server.GetDatabase("test");
var collection = database.GetCollection<C>("test");
collection.Drop();
collection.Insert(new C { Id = 1, S = null });
Console.WriteLine("Press Enter to continue.");
Console.ReadLine();
}
}
以下文档已插入数据库:
db.test.find()
{ "_id" : 1 }
来源:https://groups.google.com/forum/#!topic/mongodb-user/7-NFXBNeEXs