从 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 自然排序
名称不可变
你不能对视图进行重命名.