1、简介

    从3.4开始,mongodb支持从现有的collection或view视图创建只读的视图的功能,类似关系型数据库的视图。

2、视图创建

db.runCommand({create:<view>,viewOn:<source>,pipeline:array,collation:document}
)
字段 解释
create 视图名称
viewOn 源collection或源视图,指定依赖哪个集合或视图而建的
pipeline 聚合管道,作为聚合管道片段的一部分,参与聚合操作
collation 为view指定一个针对不同语言的排序规则

2)、第二种创建方式,参数与以上

db.createView(<view>, <source>, <pipeline>, <collation>)>

3、特点

1)只读,不可进行写操作

2)视图索引与源collection或(源view的源collection),即底层collection一致

3)不能使用$natural操作符进行排序

4)使用映射(Projection)的限制。使用find()查询时不支持以下Projection操作

 1. $
 2. $elemMatch3. $slice4. $meta

5)视图名称不可改变

6)视图建立之后(对我来说,这段有些难理解,后面深入学习后,会回来重新解释,进一步理解)

  • 列表内容视图在读操作期间是按需计算的,并且mongodb对视图的读操作会将其作为底层聚合管道的一部分;视图不支持以下操作:
 - db.collection.mapReduce()
 - $text操作,即全文索引查询操作;该操作只会在聚合查询的第一部分有效
 - geoNear命令与$geoNear管道片段,(与地理位置索引的平面地理位置索引有关)
  • 如果用于创建视图的聚合管道会抑制id字段,那么视图中的文档就没有id字段。

7)、分片视图,当视图的底层collection是分片集合时,视图就被认为是分片视图,于是在进行$lookup$graphLookup操作时,from字段指定的视图不能为分片视图。

8)、视图与Collation

  • Collation:https://yq.aliyun.com/articles/71108
  • 在创建视图时可以指定默认的Collation文档排序规则,如果不指定,视图会采用默认的普通二进制字符串排序规则,不会继承源collection的Collation排序规则。

    • 测试:1、普通集合test

    • 2、指定Collation的集合test2

    • 3、基于test2的视图

  • 如果视图采用的是默认的Collation,那么无法覆盖或重写视图的Collation。

  • 如果视图是依赖其他视图的建的,那么视图无法指定与源视图不同的Collation。

  • 多个视图做聚合查询时,这些视图的Collation必须是相同的。

    9)、公共视图定义

  • 列表集合的操作,如db.getCollectionInfos()和db.getCollectionNames()等,都会列出其下视图。
  • 视图的定义是公共的,也就是说 db.getCollectionInfos()与explain操作都会显示视图的定义,所以要避免对视图定义的字段与值的直接引用(这个不太懂)。

4、删除视图

db.collection.drop();

5、引用

https://docs.mongodb.com/manual/core/views/#create-view

mongodb 视图Views相关推荐

  1. python后台架构Django教程——视图views渲染

    全栈工程师开发手册 (作者:栾鹏) 本文衔接至python后台架构Django开发全解. 有其他问题请先阅读: http://blog.csdn.net/luanpeng825485697/artic ...

  2. Django框架-Django视图(views)系统

    Django的视图系统 定义:一个视图函数(或类),简称为视图,是一个简单的python函数或类,它接受web请求并且返回web响应. 响应可以是一张网页的html内容,一个重定向,一个404错误,一 ...

  3. 015_视图(Views)

    1. 视图是可视化的表. 2. 视图的作用 2.1. 视图隐藏了底层的表结构, 简化了数据访问操作, 客户端不再需要知道底层表的结构及其之间的关系. 2.2. 视图提供了一个统一访问数据的接口.(即可 ...

  4. php deel views,Drupal视图Views可用的显示模板文件

    最近在修改Drupal网站广告投放的时候遇到需要在Views页面的标题.描述文字下方插入广告代码,以前的做法有两种:一是在Views的Header里面插入广告代码:二是加一个带有广告代码的Block, ...

  5. jenkins权限管理,实现不同用户组显示对应视图views中不同的jobs

    一.安装插件 1.配置镜像路径(已经改过可跳过) 先进入 Manage Jenkins >   Manage Plugins 插件管理 > 高级 将升级站点改成 http://mirror ...

  6. 12,MongoDB的视图

    1,视图(View) MongoDB视图是一个可查询的对象,其内容由其他集合或视图上的聚合管道定义. MongoDB不会将视图内容持久化到磁盘. 当客户端查询视图时,视图的内容是按需计算的. Mong ...

  7. oracle 隐藏视图定义,Oracle中视图(views)的含义

    很多时候在书本上也好在其他的一些学习博客里也好,有关数据库知识时经常看到视图,那么视图(views)到底是什么呢,有什么作用呢? 1.视图的定义 视图是存储在数据字典里的一条select语句. 通过创 ...

  8. MongoDB 官方文档学习笔记(一):概述、数据库、集合、视图及定容集合

    MongoDB概述 Getting started 准备环境 学习之前需要,安装MongoDB,可参考:https://docs.mongodb.com/manual/installation/ Mo ...

  9. MongoDB从立地到成佛(介绍、安装、增删改查)

    目录 课程导学 第一关 MongoDB介绍 1.1 非关系型数据库 1.2 MongoDB的特点 1.3 MongoDB的应用场景 第二关 MongoDB安装和表结构 2.1 MongoDB的安装 2 ...

最新文章

  1. 在mysql数据库中,文章表设计有啥好的思路
  2. 语音技术正在改变计算行业
  3. P11 非线性系统-《Matlab/Simulink与控制系统仿真》程序指令总结
  4. c语言printout函数,只使用处理I/O的PrintDigit函数,编写一个过程以输出任意实数...
  5. centos 安装jdk_CentOS 7 安装 Oracle JDK 8
  6. ripro子主题eeesucai-child集成后台美化包(适用于设计素材站+资源下载站等)
  7. 【月报】Java知音的五月汇总
  8. SSAS的MDX的基础函数(二)
  9. zabbix 5.0所有依赖包_一杯茶的时间,上手Zabbix
  10. HDU 5570:balls 期望。。。。。。。。。。。。。。。
  11. php date()
  12. bin mysql u root_MySQL安装后续步骤(修改root密码)
  13. 使用成捷讯软件制作简单的通信工程预算----以高速4G新建站为例
  14. hbase权威指南学习笔记
  15. Linux之上传文件到服务器上
  16. Phoenix 升級报Cluster is being concurrently upgraded from 4.9.x to 4.13.x 错误
  17. Spark Streaming背压机制
  18. 并发策略-CAS算法
  19. 吕梁市服务器维修,终端服务器 吕梁知名智能车检网络摄像机 电话交通技术监控机柜...
  20. 谷从何来,歌向何去——Google产品策略分析

热门文章

  1. 高性能服务器安腾,安腾崛起:将64位计算推向主流
  2. 腾讯 搅局者还是终结者
  3. 负载测试压力测试强度测试稳定性测试
  4. 什么是性能测试,和压力测试、负载测试的区别是什么?
  5. Spring Data Jpa 配置多数据源
  6. 关于树叶的活动设计_幼儿园大班主题活动《叶子》教案设计
  7. axel 下载东西 ubuntu
  8. font-style属性italic与oblique的区别
  9. boss直聘今年已经是第四次崩了,意味这什么
  10. slice和splice区别