用mongo实现mysql视图_浅谈 MongoDB 的视图
2018 年 9 月 18 日,由 Robert Gravelle 撰寫
在關(guān)系數(shù)據(jù)庫(kù)中,視圖是由查詢定義的可搜索數(shù)據(jù)子集。視圖有時(shí)被稱為“虛擬表”,因?yàn)樗鼈儾淮鎯?chǔ)數(shù)據(jù),但可以像表一樣被查詢。MongoDB 最近在版本 3.4 中引入了視圖。在今天的文章中,我們將學(xué)習(xí)如何使用 Navicat for MongoDB GUI 管理和開發(fā)工具在 MongoDB 中創(chuàng)建視圖。
打開視圖對(duì)象列表
可以使用下列兩種方法從 Navicat 主窗口打開視圖對(duì)象列表:
點(diǎn)擊主工具欄中的“視圖”命令按鈕。
在數(shù)據(jù)庫(kù)對(duì)象樹中選擇“視圖”對(duì)象。
Navicat 視圖設(shè)計(jì)器
視圖設(shè)計(jì)器是一個(gè)專門的Navicat for MongoDB 工具,用于創(chuàng)建和編輯視圖。你可以通過(guò)對(duì)象選項(xiàng)卡工具欄中的“新建視圖”按鈕打開它:
你還可以右擊(在 macOS 上使用 Ctrl+點(diǎn)擊)數(shù)據(jù)庫(kù)對(duì)象樹中的“視圖”對(duì)象,然后從彈出菜單中選擇“新建視圖”:
提示:你可以在對(duì)象選項(xiàng)卡中右單(在 macOS 上使用 Ctrl+點(diǎn)擊)視圖并從彈出菜單中選擇“創(chuàng)建打開視圖快捷方式”來(lái)創(chuàng)建視圖快捷方式。此選項(xiàng)用于為你提供直接在 Navicat 主窗口中打開視圖的便捷方式。
創(chuàng)建視圖
在 MongoDB 中創(chuàng)建視圖時(shí),引擎會(huì)運(yùn)行聚合(aggregation)。因此,創(chuàng)建視圖需要我們指定一個(gè)集合或一個(gè)現(xiàn)有的視圖。
我們將創(chuàng)建一個(gè)僅顯示演員全名的視圖。
在“常規(guī)”選項(xiàng)卡上,從“集合/查看”下拉列表中選擇 actor 集合。
現(xiàn)在點(diǎn)擊“管道”選項(xiàng)卡。它包含“運(yùn)算符”下拉列表以及“表達(dá)式“文本字段。
MongoDB 具有許多用于構(gòu)造表達(dá)式的運(yùn)算符,以便在聚合管道階段中使用這些表達(dá)式來(lái)構(gòu)建視圖。運(yùn)算符表達(dá)式與帶引數(shù)的函數(shù)類似。通常,這些表達(dá)式采用一組引數(shù)并具有以下形式:
{ : [ , ... ] }
我們需要從列表中選擇運(yùn)算符 $project。它將帶有請(qǐng)求字段的文檔傳遞到管道中的下一個(gè)階段。指定的字段可以是輸入文檔中的現(xiàn)有字段或新計(jì)算的字段。
這個(gè)表達(dá)式取消“_id”字段并連接“actor”集合中的“first_name”和“l(fā)ast_name”字段。
{ _id: 0, full_name : { $concat: ["$first_name", ", ", "$last_name"] } }
你可以通過(guò)點(diǎn)擊“腳本預(yù)覽”選項(xiàng)卡查看 Navicat 生成的代碼:
db.createView("Untitled","actor",[
{
$project: {
_id: 0,
"full_name": {
$concat: [
"$first_name",
", ",
"$last_name"
]
}
}
}
])
若要查看新視圖,請(qǐng)點(diǎn)擊“預(yù)覽”按鈕或“結(jié)果”選項(xiàng)卡:
保存視圖后,Navicat 將運(yùn)行上述“db.createView”命令。聚合管道保存在“system.views”集合中。對(duì)于每個(gè)創(chuàng)建的視圖,新文檔也會(huì)保存在“system.views”集合中。
預(yù)告
現(xiàn)在我們已經(jīng)掌握了基礎(chǔ)知識(shí),在下一篇文章中,我們將學(xué)習(xí)集合。
總結(jié)
以上是生活随笔為你收集整理的用mongo实现mysql视图_浅谈 MongoDB 的视图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SiteMesh3简介及使用
- 下一篇: mysql两列取小_mysql – 我想