MongoDB 学习笔记

Windows使用MongoDB

Windows下载安装MongoDB

下载地址:https://www.mongodb.com/download-center/community

MongoDB 学习笔记

下载后双击运行

选择自定义安装,选择安装路径

MongoDB 学习笔记

MongoDB 学习笔记

非必须,为了避免安装过慢,取消MongoDB Compass的安装选项,需要可自行安装

MongoDB 学习笔记

双击运行bin目录下的mongo.exe

MongoDB 学习笔记

下载Windows客户端工具Robo3T

下载地址:https://robomongo.org/download

MongoDB 学习笔记

MongoDB 学习笔记

解压后双击robo3t.exe即可启动

创建一个连接

MongoDB 学习笔记

MongoDB 学习笔记

点击Save之后点击Connect即可

MongoDB 学习笔记

Ubuntu使用MongoDB

使用Docker安装MongoDB

  1. #拉取镜像

  2. docker pull mongo:latest


  3. #创建和启动容器

  4. docker run -d --restart=always -p 27017:27017 --name mongodb -v /data/db:/data/db -d mongo


  5. #进入容器

  6. docker exec -it mongodb /bin/bash

  1. #使用MongoDB客户端进行操作

  2. mongo

  1. show dbs #查询所有的数据库

MongoDB 学习笔记

MongoDB相关操作

创建数据库

  1. use DATABASE_NAME

如果数据库不存在,则创建数据库,否则切换到指定数据库。

删除数据库

  1. db.dropDatabase()

删除当前数据库

MongoDB 学习笔记

创建集合(表)

插入文档(数据)时可以自动创建集合

  1. db.test.insert({"testCollection":"123"})

MongoDB 学习笔记

也可以手动创建

  1. db.createCollection("test")

删除集合

  1. db.test.drop()

MongoDB 学习笔记

插入文档

  1. db.COLLECTION_NAME.insert(document)

  2. db.COLLECTION_NAME.save(document)

  • save():如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,可以使用 db.collection.insertOne() 或 db.collection.replaceOne() 来代替。

  • insert(): 若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,提示主键重复,不保存当前数据。

  1. db.test.insert({"testCollection":"123"})

MongoDB 学习笔记

3.2 版本之后新增了 db.collection.insertOne() 和 db.collection.insertMany()。

db.collection.insertOne() 用于向集合插入一个新文档,语法格式如下:

  1. db.collection.insertOne(

  2. <document>,

  3. {

  4. writeConcern: <document>

  5. }

  6. )

db.collection.insertMany() 用于向集合插入一个多个文档,语法格式如下:

  1. db.collection.insertMany(

  2. [ <document 1> , <document 2>, ... ],

  3. {

  4. writeConcern: <document>,

  5. ordered: <boolean>

  6. }

  7. )

参数说明:

  • document:要写入的文档。

  • writeConcern:写入策略,默认为 1,即要求确认写操作,0 是不要求。

  • ordered:指定是否按顺序写入,默认 true,按顺序写入。

以下文档可以存储在 MongoDB 的 test 数据库 的 test 集合中:

  1. db.test.insert({title: 'MongoDB',

  2. description: 'MongoDB 是一个 Nosql 数据库',

  3. })

以上实例中 col 是我们的集合名,如果该集合不在该数据库中, MongoDB 会自动创建该集合并插入文档。

查看已插入文档:

  1. db.test.find()

MongoDB 学习笔记

我们也可以将数据定义为一个变量,如下所示:

  1. document=({title: 'MongoDB2',

  2. description: 'MongoDB 是一个 Nosql 数据库',

  3. });

  1. db.test.insert(document)

执行结果如下

MongoDB 学习笔记

更新文档

Update()方法

  1. db.test.update({'title':'MongoDB'},{$set:{'title':'MongoDB2'}})

MongoDB 学习笔记

这种写法只能修改第一条匹配的数据,若要修改多条符合条件的数据,应添加参数multi 为true

  1. db.test.update({'title':'MongoDB'},{$set:{'title':'MongoDB3'}},{multi:true})

MongoDB 学习笔记

Save()方法

主键存在就更新,不存在就插入

  1. db.test.save({'title':'Save'})

  1. db.test.save({

  2. '_id':ObjectId('62d75b7339529166098af088'),

  3. 'title':'Save2'

  4. })

MongoDB 学习笔记

删除文档

  1. db.test.remove({'title':'Save2'})

MongoDB 学习笔记

这样会删除所有符合条件的数据,若想要只删除第一条符合条件的数据,可以添加justOne参数为1

  1. db.test.remove({'title':'MongoDB3'},1)

MongoDB 学习笔记

删除所有数据

  1. db.test.remove({})

查询文档

查询条件

操作 格式 范例
等于 {<key>:<value>} db.test.find({"title":"MongoDB3"}).pretty()
小于 {<key>:{$lt:<value>}} db.test.find({"likes":{$lt:50}}).pretty()
小于或等于 {<key>:{$lte:<value>}} db.test.find({"likes":{$lte:50}}).pretty()
大于 {<key>:{$gt:<value>}} db.test.find({"likes":{$gt:50}}).pretty()
大于或等于 {<key>:{$gte:<value>}} db.test.find({"likes":{$gte:50}}).pretty()
不等于 {<key>:{$ne:<value>}} db.test.find({"likes":{$ne:50}}).pretty()

AND 与 OR

  1. db.test.find({"title": "MongoDB3", $or: [{"title": "Save"},{"description": "MongoDB 是一个 Nosql 数据库"}]}).pretty()

MongoDB 学习笔记


原文始发于微信公众号(布沃布图):MongoDB 学习笔记

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/24989.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!