• MongoDB基本操作


    上篇文章我们简单介绍了MongoDB安装以及启动命令,本文我们来看看基本的增删改查,对MongoDB有一个直观的认识。

    本文是MongoDB系列的第二篇文章,了解前面的文章有助于更好的理解本文:

    1.Linux上安装MongoDB


    客户端安装配置

    上篇文章我们提到可以在MongoDB启动成功之后通过mongo命令进入MongoDB客户端,然后在客户端输入操作命令执行增删改查等操作。当然,我们也可以通过一些客户端工具来连接MongoDB,比如Robo 3T。

    首先我们下载Robo 3T(下载地址https://robomongo.org/download),下载成功之后解压,找到.exe可执行文件双击启动,启动后新建一个连接,输入ip地址(注意连接之前要确保Linux上的MongoDB已经启动),如下:

    连接成功之后,我们就可以看到数据库的信息了,如下:

    shell简介

    暂时我们所有的操作都先放在test数据库中进行(默认情况下,test数据库为空,这里不显示空的数据库,此时执行可以选中CentOS菜单,右键单击点击Open Shell,默认打开test数据库),选中test,右键单击,选择Open Shell,如下:


    作者:
    链接:https://www.imooc.com/article/24897
    来源:慕课网
    本文原创发布于慕课网 ,转载请注明出处,谢谢合作

    这里的shell是一个功能完整的JavaScript解释器,可以运行JavaScript程序,这个很好玩,如下我定义一个函数然后调用:
    作者:
    链接:https://www.imooc.com/article/24897
    来源:慕课网
    本文原创发布于慕课网 ,转载请注明出处,谢谢合作

     函数定义和调用的代码写好之后,按左上角的三角符号表示运行,也可以按F5或者Ctrl+Enter组合键。我们也可以调用JavaScript的标准函数库,如下:
    作者:
    链接:https://www.imooc.com/article/24897
    来源:慕课网
    本文原创发布于慕课网 ,转载请注明出处,谢谢合作

    再比如调用Date函数,如下:
    作者:
    链接:https://www.imooc.com/article/24897
    来源:慕课网
    本文原创发布于慕课网 ,转载请注明出处,谢谢合作

     如果我们没有使用Robo 3T工具,而是直接在命令行通过mongo命令来启动shell,如下:
    作者:
    链接:https://www.imooc.com/article/24897
    来源:慕课网
    本文原创发布于慕课网 ,转载请注明出处,谢谢合作

    此时,shell会连接到MongoDB服务器的test数据库,并将数据库连接赋值给全局变量db,我们将通过db这个变量实现很多功能,我们也可以查看db当前指向哪个数据库,直接使用db命令,如下:
    作者:
    链接:https://www.imooc.com/article/24897
    来源:慕课网
    本文原创发布于慕课网 ,转载请注明出处,谢谢合作

    再比如我们可以通过use命令来切换数据库(上文中也有用到过),如下:
    作者:
    链接:https://www.imooc.com/article/24897
    来源:慕课网
    本文原创发布于慕课网 ,转载请注明出处,谢谢合作

    在添加之前我们先来说说数据库的创建,上文我们提到了use命令,表示切换到某一个数据库中去,如果我们想切换到一个并不存在的数据库中去,系统就会自动的帮我们创建这个数据库。但是一个空的数据库系统并不会显示出来,往这个数据库中插入一条记录,我们就可以看到数据库存在了,如下:


    作者:
    链接:https://www.imooc.com/article/24897
    来源:慕课网
    本文原创发布于慕课网 ,转载请注明出处,谢谢合作

    MongoDB中,我们插入的每一条记录都是一个json字符串,这个json字符串我们称作文档,多个文档可以组成一个集合,这个文档就类似于我们关系型数据库中的一行数据,而集合就类似于关系型数据库中的一张表,集合也不用专门去创建,直接输入向哪个集合中插入数据即可,此时集合就会被自动的创建出来了。

    当然我们也可以批量的添加文档,如下(批量添加一样也可以使用insert方法来完成):


    作者:
    链接:https://www.imooc.com/article/24897
    来源:慕课网
    本文原创发布于慕课网 ,转载请注明出处,谢谢合作

    db.sang_collect.insertMany([{x:1},{x:2},{x:3}])
    

      如果在插入某一个文档时出错,则其后面的文档就会插入失败,而在其之前已经插入的文档则不受影响,如下:

    db.sang_collect.insertMany([{_id:99,x:99},{_id:99,x:98},{_id:97,x:97}])
    

      

    由于第二个文档的_id字段与前面的重复,所以第二第三个文档插入失败,第一个文档则插入成功。

    数据添加成功之后我们再来看看查询,利用db.sang.find()方法我们可以查看所有文档(所有记录),如果只查看一个文档(一条记录),可以通过db.sang.findOne()命令,在查看之前我先用一个for循环多插入几条数据,如下:

      

    然后分别调用find和findOne方法查看,如下:

     查出来的数据除了我们插入的x之外,还有一个_id字段,这是系统自动为我们添加的字段,我们也可以自己传入_id,但是_id字段不能重复,如下:

    find和findOne中也可以传入查询参数,这个我们后面再详细说。

    update操作可以用来更新数据,它接收两个参数,第一个参数表示更新条件,第二个参数表示要更新的数据,比如我将所有x:1的数据改为x:999,如下:

    remove操作可以用来删除数据,如下:

    shell其他操作

    我们也可以将要执行的脚本放在一个js文件中,在使用shell脚本时指定要执行的js文件,如下:

    mongo ~/myjs.js

    shell会依次执行js中的脚本,并在执行完成后退出。如下:

    我的js脚本中是两行插入语句,此时我们重新进入到shell中,就可以看到刚刚的数据已经插入成功了。

    如果有每次启动都要加载的js文件,我们可以将其内容放在.mongorc.js文件中,该文件放在当前用户目录下,如下:

    这样,每次启动都会打印一个"你好,欢迎使用MongoDB".

    好了,MongoDB的基本操作我们先说这么多,让各位小伙伴对MongoDB有一个基本的认识,后面的文章我们会详细的介绍MongoDB中增删改查的各种情况,敬请关注

  • 相关阅读:
    codeforces 666C Codeword
    codeforces 156D Clues(prufer序列)
    codeforces 633E Startup Funding(浮点数处理)
    codeforces 932E Team Work(组合数学、dp)
    codeforces 1000F One Occurrence(线段树、想法)
    codeforces 812E Sagheer and Apple Tree(思维、nim博弈)
    写点文字
    00000
    省选前干些奇怪的事情
    PE415
  • 原文地址:https://www.cnblogs.com/catbrother/p/9411163.html
Copyright © 2020-2023  润新知