用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”集合中。

预告

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值