mongodb 视图Views
来源:互联网 发布:同花顺期货模拟软件 编辑:程序博客网 时间:2024/06/05 07:35
1、简介
从3.4开始,mongodb支持从现有的collection或view视图创建只读的视图的功能,类似关系型数据库的视图。
2、视图创建
db.runCommand( { create:<view>, viewOn:<source>, pipeline:array, collation:document })
2)、第二种创建方式,参数与以上
db.createView(<view>, <source>, <pipeline>, <collation>)>
3、特点
1)只读,不可进行写操作
2)视图索引与源collection或(源view的源collection),即底层collection一致
3)不能使用$natural
操作符进行排序
4)使用映射(Projection)的限制。使用find()查询时不支持以下Projection操作
1. $ 2. $elemMatch 3. $slice 4. $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的视图
- 测试:1、普通集合test
如果视图采用的是默认的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
阅读全文
0 0
- mongodb 视图Views
- 序列视图Series Views
- Swipe Views(滑动视图)
- 滑动视图 Swipe Views
- SQL 视图(Views)
- Yii2.0 视图 views
- 【视图】ABAP Views
- Esper 视图 Views窗口语法
- Materialized Views 物化视图 -基础篇
- Zend Framework布局和视图 Layouts views
- django的通用视图 (generic views)
- Zend Framework布局和视图 Layouts views
- Creating Custom Views//制作自定义的视图
- AndroidAnnotations——Injecting Views视图注入
- AndroidAnnotations——Injecting Views视图注入
- jQuery加载部分视图(Partial Views)
- Spring MVC 视图解析 Resolving views
- jQuery加载部分视图(Partial Views)
- Activity以singleTask模式启动,intent传值的解决办法
- Python学习笔记(25)-Python日志使用示例
- 解决nfs挂载错误wrong fs type, bad option, bad superblock
- Java+Selenium3方法篇45-Java中如何读取properties文件内容
- 解析C语言结构体,位段
- mongodb 视图Views
- caffe模型weights&featureMap 可视化(c++)
- 获取验证码:倒计时封装
- final的知识点
- JAVA对XML文件的读写(有具体的代码和解析)
- linux gentoo gnome任务栏(panel)消失的解决办法
- 《学习OpenCV》第四章第6题
- 开源框架:DBUtils使用详解
- 运行dubbo-admin走到zkclient.ZkEventThread