MongoDB 的连线方式主要有三种,分别是:
学习以及开发阶段,我会比较推荐使用 legacy mongo shell 搭配 IDE 的方式,不过这只是建议并非绝对。主要是 mongo shell 固然强大,但需要额外下载才能使用,一旦遇上没有 mongo shell 的环境,在反应上可能会略差一点,尤其是线上产品的支援环境不见得会有,有的话那就万幸了。
这边说的 legacy mongo shell 执行档就是 5.0 之前的版本,也就是安装好 MongoDB 内建的版本。会推荐的原因是少了 intellisense (是缺点也是优点),因此使用上会对指令记忆度最高,且不受环境影响,有安装 MongoDB 的,肯定也会有这套。
如果使用 docker,那还真的是本机不见得会有呢(马上打脸上面),解决方案就是连进 container 使用,docker exec -it mongo bash
,还是有 mongo 可以使用的啦!
mongo --host localhost --port 27666
➜ vscode mongo --host localhost --port 27666
MongoDB shell version v4.2.7
connecting to: mongodb://localhost:27666/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("1ef3b716-b894-4a60-84fe-de2f9e7984e2") }
MongoDB server version: 5.0.2
WARNING: shell and server versions do not match
...(省略)
>
可以从上面看到虽然我的 MongoDB 是 5.0.2 版本,但还是在使用 MongoDB shell v4.2.7
,系统会提出警示版本不搭配,至於会出现什麽错误,我目前是还没碰过。
MongoDB 5.0 之後 Mongo shell 正式被搬出来,需要另外进行安装。那麽 mongosh 好在哪呢?
rs.secondaryOk()
NumberInt
改为 Int32
mongosh
确认本次的 log id$ mongosh
Current Mongosh Log ID: c2961dbd6b73b052671d9df0
Connecting to: mongodb://127.0.0.1:27017
Using MongoDB: 4.2.8
Using Mongosh: 1.0.5
~/.mongodb/mongosh/[logId]_log
查看cat ~/.mongodb/mongosh/<LogID>_log
查看历史输入指令,一样也存在 mongosh
资料夹底下,完整路径为:
~/.mongodb/mongosh/.mongosh_repl_history
MacOS 安装方法很简单
brew install mongosh
大功告成罗~
其实一模一样,只是改用 mongosh 执行档
mongosh --host localhost --port 27666
➜ vscode mongosh --host localhost --port 27666
Current Mongosh Log ID: 612cc2e97977cef8180746b9
Connecting to: mongodb://localhost:27666/?directConnection=true&serverSelectionTimeoutMS=2000
Using MongoDB: 5.0.2
Using Mongosh: 1.0.5
For mongosh info see: https://docs.mongodb.com/mongodb-shell/
------
The server generated these startup warnings when booting:
2021-08-30T11:37:05.176+00:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
------
仔细看的话会多了这次的 Log ID,可以用此 ID 去查到这次
unzip xxx.zip
chmod +x bin/mongosh
chmod +x bin/mongocryptd-mongosh
sudo cp bin/mongosh /usr/local/bin/
sudo cp bin/mongocryptd-mongosh /usr/local/bin/
sudo ln -s $(pwd)/bin/* /usr/local/bin/
其实系统在开发时,我主要还是以 IDE 为主且还是两套,因为各有优缺,所以才会同时使用。
这套是 robomongo 的前身,後来被整并到 3T 软件底下,是完全免费且开源的软件。功能较为阳春但很轻巧,开启连线速度极快,是我大部分开发时使用的软件。
Robo 3T 官方下载位置,同时可以看到另外一套叫做Studio 3T
,是另一款须付费的连线IDE,更多图形化的工具让你减少指令的操作以及固定排成事务。我本身是没有使用过,因为目前的功能都足以应付开发上使用了。
Step1 点击 Create
设定连线资讯
Step2 输入连线资讯後按下 save
连线後就能够看到整个介面,可以多行编辑你的语法,资料区也可以用 json、table 方式呈现,算是五脏俱全的 IDE
由 MongoDB 开发人员开发的,如标题,同样有分为社群版和企业版。在自己学习 MongoDB 的情况下,使用社群版即可。它的特点是:
其实都远胜於 Robo 3T,但唯独它的开启速度真的略慢,而我也不常使用这些功能(或是直接使用指令),因此比较常直接使用 Robo 3T。
照着步骤,一样的连线资讯,只是改成使用 mongodb 的连线协定。
mongodb://localhost:27666
可以看到功能更丰富了,包含上述的那些,请各位自行去摸索看看了
本系列文章会同步发表於我个人的部落格 Pie Note
今天我们来看到~物件导向的三大特性~ 什麽是物件呢~ 物件是指类别的实例。 例如,有一个类别是Car...
离散型机率 离散行机率包括很多种,例如:白努利型分布(Bernoulli distribution)...
前言 原本以为文本相似度这个主题两天就可以结束了,没想到花了四天来讲。今天将会是介绍自然语言处理基础...
前言 我们在 Training 的过程的中,一个很重要的 Part 就是如何出一个 Powerful...
margin 与 padding 这两个属性应该是所有新手必学的两大属性,也是网页入门必备的一项常识...