• 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中增删改查的各种情况,敬请关注

  • 相关阅读:
    ruby 二进制转十进制 Integer("0b101") = 5
    开始菜单和我的文档的我的图片及我的音乐变成 my pictrues 正常图标了
    ruby watir 莫名其妙的错误
    Excel SaveAS是去掉提示框
    apache && jboss安装
    ruby require include的区别
    ruby控制鼠标
    This error is raised because the column 'type' is reserved for storing the class in case of inheritance
    用正则表达式限制文本框只能输入数字,小数点,英文字母,汉字等各类代码
    ASP.NET 如何动态修改 Header 属性如添加 Meta 标签 keywords description!
  • 原文地址:https://www.cnblogs.com/catbrother/p/9411163.html
Copyright © 2020-2023  润新知