1.基本概念
-
数据库(database)
-
集合(collection)
-
文档(document)
在MongoDB中,数据库和集合都不需要手动创建
当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建数据库和集合。
### 2.基本指令 -
mongod 启动mongodb
-
mongo 连接mongodb
-
show dbs
-
show databases 显示当前的所有数据库
-
use databaseName 进入指定数据库中,若无创建数据库
-
db 当前所处的数据库
-
show collections 显示数据库中所有的集合
3.CRUD
3-1.文档查询
db.collection.find()
-find()用来查询集合中所有符合条件的文档
-find()可以接受一个对象作为条件参数
{}表示查询集合中所有的文档
{属性:值} 查询属性是指定值的文档
db.collection.findOne()
-用来查询集合中符合条件的第一个文档
- findOne()返回的是一个文档对象
db.collection.find({}).count()
- 查询所有结果的数量
example
db.stus.find({_id:"hello"});
db.stus.find({age:16,name:"111"});
db.stus.find({age:22});
db.stus.findOne({age:20});
db.stus.find({}).count();
3-2.插入文档
db.collection.insert()
-向集合中插入一个或多个文档
-当我们向集合中插入文档时,如果没有给文档指定_id属性,择数据库会自动为文档添加_id,该属性会作为文档的唯一标识
db.collection.insertOne()
-添加一个文档对象
db.collection.insertMany()
-插入多个文档对象
Example
db.stus.insert({name:"demo1",age:10,gender:"male"});
db.stus.insert([
{name:"demo2",age:20,gender:"female"},
{name:"demo3",age:20,gender:"female"},
{name:"demo4",age:20,gender:"female"}
]);
db.stus.insert({_id:"hello",name:"demo6",age:20,gender:"male"});
db.stus.find();
3-3.修改文档
db.collection.update(查询条件,新对象)
- update()默认情况下回使用新对象来替换旧的对象
- 如果需要修改制定的属性,而不是替换需要使用“修改操作符”来完成修改
$set 可以用来修改文档中的的指定属性
$unset 可以用来删除文档的指定属性
- update()默认只会修改一个
db.collection.updateMany()
- 同时修改多个符合条件的文档
db.collection.updateOne()
-修改一个符合条件的文档
db.collection.replaceOne()
- 替换一个文档
Example
db.stus.find({});
db.stus.update({name:"demo1"},{age:20});
db.stus.update( {"_id":ObjectId("............")}, { $set:{ gender:"male", address:"beijing" } } )
db.stus.update( {"_id":ObjectId("............")}, { $unset:{ address:"beijing" } } )
db.stus.updateMany( {"name":"demo"}, { $set:{ gender:"male", address:"beijing" } } )
db.stus.update( {"_id":ObjectId("............")}, { $set:{ gender:"male", address:"beijing" } }, { multi:true } )
db.stus.find()
3-4.删除文档
db.collection.remove()
- 删除一个或多个,可以第二个参数传递一个true,择只会删除一个
- 如果传递一个空对象最为参数,则会删除所有的
db.collection.deleteOne()
db.collection.deleteMany()
db.collection.drop() 删除集合
db.dropDatebase() 删除数据库
Example
db.stus.insert([
{
name:"111", isDel:0 }, {name:"222", isDel:0 }]);
db.stus.updateOne({name:"111"},{$set:{isDel:1}})
db.stus.delete({name:"222"})
db.stus.find({isDel:0
})