Navicat 博客

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

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

打开视图对象列表

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

  • 点击主工具栏中的“视图”命令按钮。
  • 在数据库对象树中选择“视图”对象。

Navicat 视图设计器

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

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

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

创建视图

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

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

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

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

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

{ <operator>: [ <argument1>, <argument2> ... ] }

我们需要从列表中选择运算符 $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"
                ]
            }
        }
    }
])

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

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

预告

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

Navicat 文章
频道条目
分享
文章归档