孤荷凌寒自学python第五十六天通过compass客户端和mongodb shell 命令来连接远端MongoDb数据库

(完整学习过程屏幕记录视频地址在文末)

今天是学习mongoDB数据库的第二天。仍然感觉付出的时间与收获完全不成正比,万事开头的时候,总是那么困难,不过今天历尽困难总算还是成功在本地连接上了远端的mongoDB数据库(就是我注册的官方的试用版本的数据库,就在官方网站服务器上。)

一、首先在官方网站为我注册的账号新建的项目【Clusters0】中添加了一个测试数据库(database),命名空间为:ghlhfirst
(具体添加过程不是很复杂,但要通过文字描述又比较有难度,而且最开始要找到这个添加过程还着实花了我不少时间,具体看我的操作录屏,链接在文末)
同样的,我可以很方便的在这个数据库中,添加一个集合,我命名为【ghlhone】
与firebase一样在集合中,我可以添加多个文档(document)对象。在文档中我也可以添加记录,一个文档的记录可以由多个字典样式的key:value格式组合的成的内容。这些都与之前学习的firebase数据库一模一样。
但今天没有研究在文档(document)中是否还可以添加下一层级的集合。
(具体看我的操作录屏,链接在文末)

二、然后是下载安装compass本地客户端
下载后的compass本地客户端的文件名是:
mongodb-compass-community-1.16.3-win32-x64.exe
直接点击安装,允许杀毒软件放行即可安装完成,桌面上会有快捷方式,而且安装过程非常快,可能只花了几秒钟时间,然而下载这个文件要花不少时间,受制于网络的影响。

客户端的使用我找到了几个网络上的教程:
一个是官方教程:
https://resources.mongodb.com/getting-started-with-mongodb/getting-started-with-python-and-mongodb
一个是百度经验上有同修者放有经验:
https://jingyan.baidu.com/article/f96699bb0bb760894f3c1b63.html

我严格参照此教程进行连接,反复尝试。
然而,却屡屡失败,反复提示:
Cannot reach any nodes for set Cluster0-shard-0. Please check network connectivity and the status of the set.

对compass起始界面上的参数也进行了反复的修改,不断尝试,花了近几个小时,然而还是不能连接上。
(我的详细操作过程,参见我的屏幕录屏,因为反复尝试次数过多,进行了剪辑,显得没有尝试几次,事实上进行了数百次的尝试。)

就暂时放弃了,转而研究它的命令行客户端【Mongo Shell】
这种通过windows的命令行客户端连接远程服务器的方法。

三、又尝试进行命令行客户端【Mongo Shell】的安装并连接
(一)、首先下载了这个客户端,下载得到的文件是:
mongodb-shell-win32-x86_64-2008plus-ssl-4.0.4.zip
因为是zip格式的压缩文件,看来不用安装 ,于是我解压了它,只得到了一个文件:
mongo.exe
此处与上面提到的百度经验中的经验文章中的教程都不再一致了,我只好进行尝试,将这个文件放到了系统盘的windows目录中,然而打开windows的命令行窗口进行验证安装是否成功:
输入的命令是:
C:\Users\pw>mongo --version
MongoDB shell version v4.0.4
git version: f288a3bdf201007f3693c58e140056adf8b04839
allocator: tcmalloc
modules: none
build environment:
distmod: 2008plus-ssl
distarch: x86_64
target_arch: x86_64

根据显示的内容来看,居然可以成功执行,当然此处也有可能是我之前已经安装了compass客户端,所以本来就已经安装了了shell版本的客户端。

(二)然后我找到了我的shell版本的连接字符命令行命令:
mongo "mongodb+srv://cluster0-zr7xj.mongodb.net/test" --username ghlh

考虑到我自己建立的第一个数据库的命名空间是:【ghlhfirst】
于是我将其修改为再到windows的cmd命令中去执行如下:
mongo "mongodb+srv://cluster0-zr7xj.mongodb.net/ghlhfirst" --username ghlh
不料出现与compass客户端同样的问题:
Cannot reach any nodes for set Cluster0-shard-0. Please check network connectivity and the status of the set.
在此又花了大量时间,终于后来明白了,是网络访问受阻,经过反复测试,花去大量宝贵的时间之后,终于在shell命令下连接上了:
C:\Users\pw>mongo "mongodb+srv://cluster0-zr7xj.mongodb.net/ghlhfirst" --username ghlh
MongoDB shell version v4.0.4
Enter password:
connecting to: mongodb+srv://cluster0-zr7xj.mongodb.net/ghlhfirst
2019-01-01T17:38:59.961+0800 I NETWORK [js] Starting new replica set monitor for Cluster0-shard-0/cluster0-shard-00-00-zr7xj.mongodb.net.:27017,cluster0-shard-00-01-zr7xj.mongodb.net.:27017,cluster0-shard-00-02-zr7xj.mongodb.net.:27017
2019-01-01T17:39:01.002+0800 I NETWORK [js] Successfully connected to cluster0-shard-00-00-zr7xj.mongodb.net.:27017 (1 connections now open to cluster0-shard-00-00-zr7xj.mongodb.net.:27017 with a 5 second timeout)
2019-01-01T17:39:01.034+0800 I NETWORK [ReplicaSetMonitor-TaskExecutor] Successfully connected to cluster0-shard-00-01-zr7xj.mongodb.net.:27017 (1 connections now open to cluster0-shard-00-01-zr7xj.mongodb.net.:27017 with a 5 second timeout)
2019-01-01T17:39:01.243+0800 I NETWORK [js] changing hosts to Cluster0-shard-0/cluster0-shard-00-00-zr7xj.mongodb.net:27017,cluster0-shard-00-01-zr7xj.mongodb.net:27017,cluster0-shard-00-02-zr7xj.mongodb.net:27017 from Cluster0-shard-0/cluster0-shard-00-00-zr7xj.mongodb.net.:27017,cluster0-shard-00-01-zr7xj.mongodb.net.:27017,cluster0-shard-00-02-zr7xj.mongodb.net.:27017
2019-01-01T17:39:02.266+0800 I NETWORK [js] Successfully connected to cluster0-shard-00-00-zr7xj.mongodb.net:27017 (1 connections now open to cluster0-shard-00-00-zr7xj.mongodb.net:27017 with a 5 second timeout)
Implicit session: session { "id" : UUID("54f31aff-fe89-4189-b68e-c637916bd71b") }
MongoDB server version: 4.0.4
Error while trying to show server startup warnings: user is not allowed to do action [getLog] on [admin.]
MongoDB Enterprise Cluster0-shard-0:PRIMARY>
然后证实通过compass客户端也可以连接上了。

三、对mongoDB连接命令的理解:
(一)
"mongodb+srv://cluster0-zr7xj.mongodb.net/ghlhfirst"
命令参数的第一部分其实是自己的数据库的地址,个规模一个域名的形式。
(二)
--username ghlh
表示:当前连接数据库的授权用户名

而授权用户对应的密码,会在cmd命令窗口中,单独提示输入。
输入密码是不会有任何字符显示的,只管输入完成后点击【Enter】即可。

由于今天花费了太多时间与服务器访问上,还没有进行Python语句连接到mongoDB的测试。

——————————
今天整理的学习笔记完成,最后例行说明下我的自学思路:
根据过去多年我自学各种编程语言的经历,认为只有真正体验式,解决实际问题式的学习才会有真正的效果,即让学习实际发生。在2004年的时候我开始在一个乡村小学自学电脑 并学习vb6编程语言,没有学习同伴,也没有高师在上,甚至电脑都是孤岛(乡村那时还没有网络),有的只是一本旧书,在痛苦的自学摸索中,我找到适应自己零基础的学习方法:首先是每读书的一小节就作相应的手写笔记,第二步就是上机测试每一个笔记内容是否实现,其中会发现书中讲的其实有出入或错误,第三步就是在上机测试之后,将笔记改为电子版,形成最终的修订好的正确无误的学习笔记 。
通过反复尝试错误,在那个没有分享与交流的黑暗时期我摸黑学会了VB6,尔后接触了其它语言,也曾听过付费视频课程,结果发现也许自己学历果然太低,就算是零基础的入门课程,其实也难以跟上进度,讲师的教学多数出现对初学者的实际情况并不了解的情况,况且学习者的个体也存在差异呢?当然更可怕的是收费课程的价格往往是自己难以承受的。
于是我的所有编程学习都改为了自学,继续自己的三步学习笔记法的学习之路。
当然自学的最大问题是会走那么多的弯路,没有导师直接输入式的教学来得直接,好在网络给我们带来无限搜索的机会,大家在网络上的学习日志带给我们共享交流的机会,而QQ群等交流平台、网络社区的成立,我们可以一起自学,互相批评交流,也可以获得更有效,更自主的自学成果。
于是我以人生已过半的年龄,决定继续我的编程自学之路,开始学习python,只希望与大家共同交流,一个人的独行是可怕的,只有一群人的共同前进才是有希望的。
诚挚期待您的交流分享批评指点!欢迎联系我加入从零开始的自学联盟。
这个时代互联网成为了一种基础设施的存在,于是本来在孤独学习之路上的我们变得不再孤独,因为网络就是一个新的客厅,我们时刻都可以进行沙龙活动。
非常乐意能与大家一起交流自己自学心得和发现,更希望大家能够对我学习过程中的错误给予指点——是的,这样我就能有许多免费的高师了——这也是分享时代,社区时代带来的好福利,我相信大家会的,是吧!

根据完全共享的精神,开源互助的理念,我的个人自学录制过程是全部按4K高清视频录制的,从手写笔记到验证手写笔记的上机操作过程全程录制,但因为4K高清文件太大均超过5G以上,所以无法上传至网络,如有需要可联系我QQ578652607对传,乐意分享。上传分享到百度网盘的只是压缩后的720P的视频。

我的学习过程录像百度盘地址分享如下:(清晰度:1280x720)

链接:https://pan.baidu.com/s/1vuDr039cVG0Mj0zsFv5gCg
提取码:e6tp

Bilibili:
https://www.bilibili.com/video/av39680803/

喜马拉雅语音笔记:
https://www.ximalaya.com/keji/19103006/149597379

孤荷凌寒自学python第五十六天通过compass客户端和mongodb shell 命令来连接远端MongoDb数据库的更多相关文章

  1. 孤荷凌寒自学python第五十九天尝试使用python来读访问远端MongoDb数据服务

    孤荷凌寒自学python第五十九天尝试使用python来读访问远端MongoDb数据服务 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第五天.今天的感觉是,mongoDB数 ...

  2. 孤荷凌寒自学python第五十五天初识MongoDb数据库

    孤荷凌寒自学python第五十五天第一天初识MongoDb数据库 (完整学习过程屏幕记录视频地址在文末) 大家好,2019年新年快乐! 本来我想的是借新年第一天开始,正式尝试学习爬虫,结果今天偶然发现 ...

  3. 孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档

    孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库 ...

  4. 孤荷凌寒自学python第五十天第一次接触NoSql数据库_Firebase

    孤荷凌寒自学python第五十天第一次接触NoSql数据库_Firebase (完整学习过程屏幕记录视频地址在文末) 之前对关系型数据库的学习告一段落,虽然能力所限没有能够完全完成理想中的所有数据库操 ...

  5. 孤荷凌寒自学python第八十六天对selenium模块进行较详细的了解

    孤荷凌寒自学python第八十六天对selenium模块进行较详细的了解 (今天由于文中所阐述的原因没有进行屏幕录屏,见谅) 为了能够使用selenium模块进行真正的操作,今天主要大范围搜索资料进行 ...

  6. 孤荷凌寒自学python第七十六天开始写Python的第一个爬虫6

    孤荷凌寒自学python第七十六天开始写Python的第一个爬虫6 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 不过由于对python-docx模 ...

  7. 孤荷凌寒自学python第四十六天开始建构自己用起来更顺手一点的Python模块与类尝试第一天

     孤荷凌寒自学python第四十六天开始建构自己用起来更顺手一点的Python模块与类,尝试第一天 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 按上一天的规划,这是根据过去我自学其它编程语 ...

  8. 孤荷凌寒自学python第六十六天学习mongoDB的基本操作并进行简单封装5

    孤荷凌寒自学python第六十六天学习mongoDB的基本操作并进行简单封装5并学习权限设置 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第十二天. 今天继续学习mongo ...

  9. 孤荷凌寒自学python第八十五天配置selenium并进行模拟浏览器操作1

    孤荷凌寒自学python第八十五天配置selenium并进行模拟浏览器操作1 (完整学习过程屏幕记录视频地址在文末) 要模拟进行浏览器操作,只用requests是不行的,因此今天了解到有专门的解决方案 ...

随机推荐

  1. ACM Arabella Collegiate Programming Contest 2015 H. Capital City 边连通分量

    题目链接:http://codeforces.com/gym/100676/attachments 题意: 有 n 个点,m 条边,图中,边强连通分量之间可以直达,即距离为 0 ,找一个点当做首都,其 ...

  2. 模拟水题,牛吃草(POJ2459)

    题目链接:http://poj.org/problem?id=2459 题目大意:有C头牛,下面有C行,每头牛放进草地的时间,每天吃一个草,总共有F1个草,想要在第D的时候,草地只剩下F2个草. 解题 ...

  3. centos6.x yum 安装 mysql5.6 mysql5.7

    先卸载低版本MYSQL yum remove mysql* rpm -ivh http://repo.mysql.com/mysql-community-release-el6.rpm yum ins ...

  4. linq 查询的两种方法 (在EF model中实现)

    众所周知:linq查询有两种方式 1.通过linq表达式查询 2.是通过linq方法查询 代码中 每一步都有注释

  5. CDH4.5.0源代码编译

    Unable to load native-hadoop library for your platform解决 安装maven 1 cmake-2.8.12.1.tar.gz cd cmake-2. ...

  6. 旧文备份:安装cygwin及在console下输入和显示中文

    1.下载Cygwin.exe文件,双击安装,首先在"Choose A Download Source"的时候选择"Download Without Installing& ...

  7. MyEclipse中安装findBugs插件(摘)

    安装方法如下: 1.首先从findbugs网站下载插件:http://findbugs.sourceforge.net/downloads.html 2.将下载回来的zip包解压,得到文件夹:edu. ...

  8. 关于新项目上传远程库报错 non-fast-forward

    已有项目上传远程库会报错 non-fast-forward 首先使用命令行 git pull origin master --allow-unrelated-histories 之所以使用这个命令,是 ...

  9. js jquery 权限单选 bug修改以及正确代码 购物车数量加减

    效果图废话不多直接上代码 用的avalon渲染,其实都是一样的 <div class="shop-arithmetic"> <a href="javas ...

  10. JS - 给String.prototype添加replaceAll方法

    String.prototype.replaceAll = function (targetStr, newStr) {  var sourceStr = this.valueOf();  while ...