Builders<TDocument> 除了能够生成过滤构建器,还有其它几种构建器:
// 条件过滤 public static FilterDefinitionBuilder<TDocument> Filter { get; } // 索引过滤 public static IndexKeysDefinitionBuilder<TDocument> IndexKeys { get; } // 映射器,相当于使用 Linq 的 .Select() 查询自己只需要的字段 public static ProjectionDefinitionBuilder<TDocument> Projection { get; } // 排序,创建排序规则,如工具年龄排序 public static SortDefinitionBuilder<TDocument> Sort { get; } // 更新,更新某些字段的值等 public static UpdateDefinitionBuilder<TDocument> Update { get; }详细请参考
名称映射由于 MongoDB 区分字段的大小写,文档的字段一般使用驼峰命名法,首字母小写,而 C# 字段属性首字母是 大小开头的,因此需要不同名称对应起来。
可以使用 BsonElement 特性来设置映射的名称。
class Person { [BsonElement("fn")] public string FirstName { get; set; } [BsonElement("ln")] public string LastName { get; set; } }以上就是 MongoDB 的初入门知识,但是使用了 MongoDB 有什么好处?可以参考阿里云的这篇文章:https://developer.aliyun.com/article/64352
整理场景如下:
存储应用程序日志。日志结构化,查找方便,可以导出其它格式和二次利用。
增加字段不需要改动表结构,灵活变更。
支持 json 格式导入;类似 json 的数据结构;能够很容易还原对象的属性,一次性存储数据;如果使用传统数据库,则需要建立多个表并设置主键外界关系。
集群。分布式集群海量数据,容易拓展;故障转移保证服务可用;
解决分布式文件存储需求。
索引方式灵活。