关系型数据库(RDBMS):mysql , oracle, db2, sql server
关系数据库中全是表
非关系型数据库(NoSQL):MongoDB、redis
键值对数据库(redis)
文档数据库(MongoDB)
MongoDB的数据模型是面向文档的,所谓文档就是类似于JSON的结构,MongoDB中存的就是各式各样的JSON(BSON)。
可以配置开机自启动,菜鸟教程
数据库(database)
集合(collection)
文档(document)
数据库>集合> 文档
在MongoDB中,数据库和集合都不需要手动创建
当我们创建文档时,如果文档所在的集合或数据库不存在,会自动创建
show dbs == show databases
use 数据库名
db : 显示当前所在的数据库
show collections : 显示数据库中的所有集合
CRUD操作
插入文档
db.集合名称.insert(文档对象)
向集合中插入一个或多个文档
当像集合中插入文档时没有给文档指定id,数据库会自动生成一个,该属性用来做唯一标识,id 也可以自己指定但要唯一。
例子:向test数据库中的stus集合插入一个新的学生对象
{name:"zhangsan",age:10,gender:"male"}
db.stus.insert({name:"zhangsan",age:10,gender:"male"})
插入多个对象
db.stus.insert([
{name:"lisi", age:"12", gender:"female"},
{name:"王五", age:"15", gender:"male"}])
db.集合名称.insertOne(文档对象)
只能插入一个文档对象。
db.集合名称.insertMany(文档对象)
只能插入多个文档对象。
这样做更清晰。
查询文档
db.集合名称.find()
查询当前集合的所有文档
可以接受一个对象作为条件参数
{}: 表示查询集合中所有文档
{属性:值}: 查询指定属性值的文档
find() 返回的是一个数组
db.stus.find({name:"lisi"})
db.集合名称.findOne()
查询集合中符合条件的第一个文档
findOne() 返回的时一个文档对象
db.stus.findOne({name:"zhangsan"})
db.集合名称.find({}).count()
查询所有结果的数量
修改文档
db.集合名称.update(查询条件,新对象,属性可以没有
)
update() 默认情况下使用新对象替换旧对象
如果需要修改指定的属性,而不是替换需要使用"修改操作符"来完成
$set 可以用来修改文档中的指定属性
$unset 可以用来删除文档的指定属性
update() 默认只会修改一个
属性可以指定multi为true,这样就可以修改多个对象
db.集合名称.updateMany()
同时修改多个符合条件的文档
db.collection.updateOne()
修改一个符合条件的文档
// 修改所有name为lisi的年龄为20
db.stus.updateMany(
{name:"lisi"}, // 查询条件
{ // 新对象
$set:{
age:20
}
}
)
db.集合名称.replaceOne()
原文:https://www.cnblogs.com/hhhhire/p/11980208.html