MongoDB C#官方驱动程序:将对象映射到短名称以限制空间

use*_*558 7 c# mongodb mongodb-.net-driver

我搜索一种方法,将使用可读名称("类别")定义的Bson对象映射到短名称("ct"),并限制主文档库中项目名称占用的空间.我已经看到这个使用其他驱动程序,但如何使用官方驱动程序.我怎么做,哪里是最好的定义地点.可以在查询中使用长名并检索短内容吗?

谢谢.

Bry*_*isi 22

既然没有人真正给出问题的答案,那么就是这样.

使用官方驱动程序,您可以通过使用BsonElement修饰属性名称来完成此操作.例如:

public class SomeClass
{
    public BsonObjectId Id { get; set; }

    [BsonElement("dt")]
    public DateTime SomeReallyLongDateTimePropertyName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在驱动程序将使用"dt"作为BSON属性名称.

但是,此时无法使用POCO属性名称进行查询.您需要在查询中使用"dt".有一个独立的项目构建在C#驱动程序之上,提供LINQ样式查询功能,但我还没有测试它以验证它是否能满足您的要求.

  • 同意..但是如果你的收藏包含数百万甚至数十亿的记录(例如对于分析平台),那么你可以在某处记下你的属性名称. (3认同)

rno*_*nko 7

保持模型清洁更好.MongoDB.Driver允许在外面执行.

BsonClassMap.RegisterClassMap<SomeClass>(x =>
{
     x.AutoMap();
     x.GetMemberMap(m => m.SomeReallyLongDateTimePropertyName).SetElementName("dt");
});
Run Code Online (Sandbox Code Playgroud)