用mongo实现mysql视图_浅谈 MongoDB 的视图
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 具有許多用于構造表達式的運算符,以便在聚合管道階段中使用這些表達式來構建視圖。運算符表達式與帶引數的函數類似。通常,這些表達式采用一組引數并具有以下形式:
{ : [ , ... ] }
我們需要從列表中選擇運算符 $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”集合中。
預告
現在我們已經掌握了基礎知識,在下一篇文章中,我們將學習集合。
總結
以上是生活随笔為你收集整理的用mongo实现mysql视图_浅谈 MongoDB 的视图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SiteMesh3简介及使用
- 下一篇: 【托马斯微积分11版---英文】读书笔记