用mongo实现mysql视图_浅谈 MongoDB 的视图

2018 年 9 月 18 日,由 Robert Gravelle 撰写

在关系数据库中,视图是由查询定义的可搜索数据子集。视图有时被称为“虚拟表”,因为它们不存储数据,但可以像表一样被查询。MongoDB 最近在版本 3.4 中引入了视图。在今天的文章中,我们将学习如何使用 Navicat for MongoDB GUI 管理和开发工具在 MongoDB 中创建视图。

打开视图对象列表

可以使用下列两种方法从 Navicat 主窗口打开视图对象列表:

点击主工具栏中的“视图”命令按钮。

在数据库对象树中选择“视图”对象。

20eb51822cba6ebd36feb71b4eac1a99.png

Navicat 视图设计器

视图设计器是一个专门的Navicat for MongoDB 工具,用于创建和编辑视图。你可以通过对象选项卡工具栏中的“新建视图”按钮打开它:

470eb359050153f3eaba38f5f7fdf996.png

你还可以右击(在 macOS 上使用 Ctrl+点击)数据库对象树中的“视图”对象,然后从弹出菜单中选择“新建视图”:

1bbe4bf12b2022dd940d27d186380c45.png

提示:你可以在对象选项卡中右单(在 macOS 上使用 Ctrl+点击)视图并从弹出菜单中选择“创建打开视图快捷方式”来创建视图快捷方式。此选项用于为你提供直接在 Navicat 主窗口中打开视图的便捷方式。

创建视图

在 MongoDB 中创建视图时,引擎会运行聚合(aggregation)。因此,创建视图需要我们指定一个集合或一个现有的视图。

我们将创建一个仅显示演员全名的视图。

在“常规”选项卡上,从“集合/查看”下拉列表中选择 actor 集合。

现在点击“管道”选项卡。它包含“运算符”下拉列表以及“表达式“文本字段。

MongoDB 具有许多用于构造表达式的运算符,以便在聚合管道阶段中使用这些表达式来构建视图。运算符表达式与带引数的函数类似。通常,这些表达式采用一组引数并具有以下形式:

{ : [ , ... ] }

我们需要从列表中选择运算符 $project。它将带有请求字段的文档传递到管道中的下一个阶段。指定的字段可以是输入文档中的现有字段或新计算的字段。

这个表达式取消“_id”字段并连接“actor”集合中的“first_name”和“last_name”字段。

{ _id: 0, full_name : { $concat: ["$first_name", ", ", "$last_name"] } }

你可以通过点击“脚本预览”选项卡查看 Navicat 生成的代码:

db.createView("Untitled","actor",[

{

$project: {

_id: 0,

"full_name": {

$concat: [

"$first_name",

", ",

"$last_name"

]

}

}

}

])

若要查看新视图,请点击“预览”按钮或“结果”选项卡:

7084f5c8d412f7f541347d6396ba8090.png

保存视图后,Navicat 将运行上述“db.createView”命令。聚合管道保存在“system.views”集合中。对于每个创建的视图,新文档也会保存在“system.views”集合中。

预告

现在我们已经掌握了基础知识,在下一篇文章中,我们将学习集合。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java char 空_2020重新出发,JAVA入门,数据类型

数据类型通过上一节,明白了变量就是申请内存来存储值,即当创建变量的时候,需要在内存中申请空间。内存管理系统根据变量的类型为变量分配存储空间,确定了变量的类型,即确定了数据需分配内存空间的大小,数据…

实验一报告

北京电子科技学院(BESTI) 实 验 报 告 课程:Java   班级: 1352    姓名:谈愈敏   学号:20135220 成绩:   指导教师:娄嘉鹏       实验日期…

mysql中下杠怎么打_怎么打字母下方的短横杠?,下横杠怎么打

下横杠怎么打,怎么打字母下方的短横杠?对于电脑操作,大多数成年人不及现在的孩子们。今天看到同事在编辑一篇文档,需要在字母下面打一条短横杠,如下图所示。但是同事怎么也打不出来,坐在旁边的他的孩子,看着有点不耐烦…

云计算解决方案——电信行业

2019独角兽企业重金招聘Python工程师标准>>> 云计算解决方案——电信行业 由于业务的快速发展,电信运营商每年要采购大量的服务器和存储设备,这些资源闲置或者偶尔被使用,造成大量的投资浪费。解决这一问题最好的方法是在企业内部…

华硕主板装系统蓝屏_华硕笔记本电脑重装系统后蓝屏怎么办

华硕笔记本电脑重装系统后蓝屏怎么办?笔记本重装系统后蓝屏怎么办,之前笔记本系统很慢很慢,想重新安装一下操作系统,重新安装的是Windows 7的系统,使用的是Ghost系统盘,为什么重新安装玩系统之后蓝屏了,其…

[LeetCode]LRU Cache有个问题,求大神解答【已解决】

题目: Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and set. get(key) - Get the value (will always be positive) of the key if the key exists in the cache, otherwise ret…

从CentOS6.0i386到CentOS6.6x86-64,搬家中,磕磕跘跘,各种折腾……

2019独角兽企业重金招聘Python工程师标准>>> 原本打算从 CentOS 6.0 i386 蹦到 CentOS 7.1 x86-64 ,结果声卡一灵九不灵的问题没解决。决定退到 CentOS 6.6 x86-64 。 装好 CentOS 6.6 x86-64 ,原生创建的用户 guest 貌似没啥问题。但直接迁…

java程序源代码如何保存到桌面_如何编写JAVA小白第一个程序

学习上一篇文章之后,确定好JDK和环境变量都成功之后,我们来编写我们第一个java程序命名为HelloWorld.java。上一篇文章链接:JDK下载与环境变量的安装桌面上右击,新建一个文本文档用记事本打开文本文档编写如上图代码,注…

matlab图像输出表格_matlab 图像输出3维字

废话不多说。strE; scale10; % 绘制 3D 文字 new_fig figure(visible,on); word_handle text(0.01,0.5,str,... fontsize,200,... fontweight,bold,... fontunits,normalized); axis off set(gcf,PaperPosition,[0 0 8 8],PaperUnits,normalized) % saveas(gca,[pwd 1.png])…

mysql注册成功为啥启动不了mysql_mysql启动不成功的解决方法

1.net start mysql提示服务名无效原因:mysql服务没有安装。解决方法:2. 以管理员身份运行cmd。window键R 输入cmd3. 切换到 mysql.exe 的文件位置的路径我的文件路径是 D:D:\Mysql\mysql-5.7.16-win32\bin4、输入mysql.exe -install 回车如上图显示就表示…

NoSQL数据库:数据的一致性

NoSQL数据库:数据的一致性 读取一致性 强一致性 在任何时间访问集群中任一结点,得到的数据结果一致; 用户一致性 对同一用户,访问集群期间得到的数据一致; 解决用户一致性:使用粘性会话,将会话…

基于Apache OLTU的OAuth2.0授权解决方案

Apache OLTU实现了OAuth 2.0的规范,是一种可靠的Java授权解决方案。但是,官方文档实在是太惨不忍睹了。本文参考了开涛的OAuth 2.0集成Shiro文章。模拟了OAuth2.0的认证流程。技术框架:SpringSpringMVCApache OLTUAmazonUI.界面效果&#xff…

小程序转h5之后 vant文件查找失败:_你还在使用原生开发小程序吗

最近帮别人在做一个小程序,因为官方的支持不够好,组件库也不够多,所以就没有使用官方的操作。网上查找了一番,觉得mpvue还不错(之前也没玩过),索性拿来用吧!01 前言小程序的做法也是比较简单的,假如你是老手…

JQUERY插件JqueryAjaxFileUplaoder----更简单的异步文件上传

异步上传相信大家都做过类似的功能,JqueryAjaxFileUploader为我们提供了更简单的实现和使用方式。不过既然是JQUERY的插件那么它所依赖的环境大家都懂得。JqueryAjaxFileUploader并不华丽,也没有提供美化文件上传控件的css,它并不像jQuery Fi…

替换WordPress调用的Google前端库为360镜像的库

为什么80%的码农都做不了架构师?>>> 把 googleapis 替换成 useso 即可: sed -i s/googleapis/useso/g grep -rl googleapis ./wordpress 另外在后台关闭Gravatar头像显示(设置-讨论-头像显示),免得拖慢页面加载速度. 要成倍提升WordPress速度,可以考虑使…

IOS模拟器调试ANE

来源:http://www.tuicool.com/articles/AFRJzi 利用iOS模拟器来检测和调试AIR应用程序补充篇 Air3.4来了 除去可以直接往模拟器里面部署应用,还可以往真机里面部署应用。 Air3.3的时候非常苦逼,你只能往模拟器里面装应用而不能删除&#xff0…

python开源考试_可能是 Python 中最火的第三方开源测试框架 pytest

作者:HelloGitHub-Prodesire一、介绍本篇文章是《聊聊 Python 的单元测试框架》的第三篇,前两篇分别介绍了标准库 unittest 和第三方单元测试框架 nose。作为本系列的最后一篇,压轴出场的是Python 世界中最火的第三方单元测试框架&#xff1a…

CSS3那些不为人知的高级属性

尽管现代浏览器已经支持了众多的CSS3属性,但是大部分设计师和开发人员貌似依然在关注于一些很“主流”的属性,如border-radius、box-shadow或者transform等。它们有良好的文档、很好的测试并且最常用到,所以如果你最近在设计网站,…

Oracle PL/SQL之LOOP循环控制语句

在PL/SQL中可以使用LOOP语句对数据进行循环处理&#xff0c;利用该语句可以循环执行指定的语句序列。常用的LOOP循环语句包含3种形式&#xff1a;基本的LOOP、WHILE...LOOP和FOR...LOOP。 LOOP语句的基本语法结构如下&#xff1a; [<<label_name>>] LOOPstatement.…

Sublime text 入门学习资源篇及其基本使用方法

Sublime text 学习资源篇 史上最性感的编辑器-sublimetext&#xff0c;插件&#xff0c; 学习资源 官网 http://www.sublimetext.com/插件 https://packagecontrol.io教程 Sublime Text 全程指南Sublime Text 2 入门及技巧Sublime Text 使用介绍、全套快捷键及插件推荐Sublime …