微信搜索
江南一点雨

MongoDB基本操作

MongoDB 系列其他文章:

1.Linux上安装MongoDB
2.MongoDB基本操作
3.MongoDB数据类型
4.MongoDB文档更新操作
5.MongoDB文档查询操作(一)
6.MongoDB文档查询操作(二)
7.MongoDB文档查询操作(三)
8.MongoDB查看执行计划
9.初识MongoDB中的索引
10.MongoDB中各种类型的索引
11.MongoDB固定集合
12.MongoDB管道操作符(一)
13.MongoDB管道操作符(二)
14.MongoDB中MapReduce使用
15.MongoDB副本集搭建
16.MongoDB副本集配置
17.MongoDB副本集其他细节
18.初识MongoDB分片
19.Java操作MongoDB

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

客户端安装配置

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

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

p223

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

p224

shell 简介

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

p225

这里的 shell 是一个功能完整的 JavaScript 解释器,可以运行 JavaScript 程序,这个很好玩,如下我定义一个函数然后调用:

p226

函数定义和调用的代码写好之后,按左上角的三角符号表示运行,也可以按 F5 或者 Ctrl+Enter 组合键。我们也可以调用 JavaScript 的标准函数库,如下:

p227

再比如调用Date函数,如下:

p228

如果我们没有使用 Robo 3T 工具,而是直接在命令行通过 mongo 命令来启动 shell,如下:

p229

此时,shell 会连接到 MongoDB 服务器的 test 数据库,并将数据库连接赋值给全局变量 db,我们将通过 db 这个变量实现很多功能,我们也可以查看 db 当前指向哪个数据库,直接使用 db 命令,如下:

p230

再比如我们可以通过 use 命令来切换数据库(上文中也有用到过),如下:

p231

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

p232

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

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

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 循环多插入几条数据,如下:

p233

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

p234

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

p235

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

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

p236

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

p237

shell 其他操作

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

mongo ~/myjs.js

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

p246

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

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

p247

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

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

参考资料:

  1. 《MongoDB权威指南第2版》
赞(0)
未经允许不得转载:江南一点雨 » MongoDB基本操作
分享到: 更多 (0)
扫码关注微信公众号【江南一点雨】,回复 1024,查看松哥原创 Java 实战教程(图文+视频)。

专注 Java 一百年

关注我们国际站