从 3.4 版本开始,MongoDB 增加了从从现有集合或者其它视图中创建只读视图的支持。
在 MongoDB 3.4 中,创建或者定义一个视图的介绍如下:
含有 viewOn 和 pipeline 属性选项的 create 命令(以及 db.createCollection helper ): db.runCommand( { create: <view>, viewOn: <source>, pipeline: <pipeline>} )或者为这个视图指定一个默认的 collation 排序规则 :
db.runCommand ( { create: <view>, viewOn: <source>, pipeline: <pipeline>, collation: <collation> } ) 一个新的 mongo shell 命令 db.createView() : db.createView(<view>, <source>, <pipeline>, <collation> )视图表现出以下行为:
只读 视图是只读的;在视图上进行写操作会报错。下面这些读操作同样支持视图:
db.collection.find()db.collection.findOne()db.collection.aggregate()db.collection.count()db.collection.distinct()索引使用和排序操作
视图使用基础集合的索引。由于索引是在基础集合基础上,因此不能直接在视图上创建、除去或者重新生成索引,也不能在视图上获取索引列表。你不能在视图上指定 $natural 自然排序投影限制 find() 命令在对视图操作时不支持以下的 投影符:
$$elemMatch$slice$meta名称不可变 你不能对视图进行重命名. 相关资源:七夕情人节表白HTML源码(两款)