MongoDB简介

  • MongoDB是为了快速开发互联网Web应用而设计的数据库系统。
  • MongoDB的设计目标是极简、灵活、作为Web应用栈的一部分。
  • MongoDB的数据抹香香是面向文档的,所谓文档是一种类似于JSON的结构,简单理解MongoDB这个数据库中存的是各种各样的JSON(BSON)。
下载安装MongoDB(Ubuntu)

安装MongoDB

sudo apt-get install mongodb

查看MongoDB版本

mongo -version

连接MongoDB

mongo



MongoDB的基本操作

基本概念

  • 文档(document)类似于JS中的对象,在MongoDB中每一条数据都是一个文档。
  • 集合(collection)集合就是一组文档,类似于数组,也就是集合是用来存放文档的,集合中存储的文档可以是各种各样,没有格式要求。
  • 多个文档组成集合,多个集合组成数据库。
  • 在MongoDB中,数据库和集合都不需要手动创建,当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建数据库和集合。

基本指令
显示所有数据库

show databases
show dbs

mongodb unwind 只能用于array吗 mongodb union_mongodb


进入到指定的数据库

use 数据库名

查看数据库集合

show collections

文档增删改查操作

  • 向集合中插入文档(collection指的是集合名)
db.<collection>.insert(doc)
#向school数据库中的stus集合中插入一个学生对象{name:"孙悟空",age:18,gender:"男"}
db.stus.insert({name:"孙悟空",age:18,gender:"男"})

mongodb unwind 只能用于array吗 mongodb union_排序规则_02

  • 向集合中插入多个文档(使用数组)
db.stus.insert([
    {name:"猪八戒",age:18,gender:"男"},
    {name:"沙和尚",age:18,gender:"男"}
])

当我们想集合插入文档时,如果没有给文档指定_id属性,则数据库会自动为文档添加_id,该属性用来作为文档的唯一标识,_id我们可以自己指定,如果我们指定了,数据库就不会添加,_id必须确保唯一。

  • 查询集合下的所有符合条件的文档,find()可以接收一个对象作为条件参数
db.<collection>.find()
db.stus.find({name:"孙悟空"}) #查询name为孙悟空的值
db.stus.find({age:18}).count() #获取一共有几个文档
  • 替换文档对象
db.<collection>.update(查询条件,新对象)
db.stus.update({name:"沙和尚"},{age:100}) #替换为新对象
  • 如果需要修改指定的属性,而不是替换,需要使用“修改操作符”,完成修改。

$set 可以用来修改文档中的指定属性。

db.stus.update({name:"孙悟空"},{$set:{age:100}})

$unset 可以用来删除文档的指定属性。

db.stus.update({name:"孙悟空"},{$unset:{age:"",gender:""}})
  • 删除文档对象,remove可以根据传递的条件删除文档
    如果remove中传递的是空,那么就会清空文档
db.<collection>.remove()
db.<collection>.deleteOne()
db.<collection>.deleteMany()

除了remove清空文档,也可以使用drop()直接删除集合

db.stus.drop() #直接删除集合
  • 分页查询
db.collection.find().skip(20).limit(10) #跳过前20条数据,查询10条数据



sort排序

sort()可以用来指定文档的排序规则,sort()需要传递一个对象来指定排序规则,1表示升序,-1表示降序。

db.emp.find().sort({sal:-1})
db.emp.find({}).sort({sal:1,empno:-1})