mongodb的初次使用
-
数据库
-
集合
-
文档
-
在mongodb中不需要手动创建数据库和集合,它会在你使用的时候自动创建
-
安装
- 使用管理员权限进行安装,详细安装过程
- 将bin目录配到环境变量中
-
登录
-
- mongo --port 27017 -u “admin” -p “123456” --authenticationDatabase “admin”
-
基本指令
-
show dbs
-显示所有数据库use 数据库名
-进入数据库
- 如果没有则在第一次创建集合时创建db
-显示当前所处的数据库show collectiongs
-显示数据库中所有的集合 -
数据库的CRUD操作
-
向数据库中插入文档
-
-
db.集合的名字.insert(doc)
- 向文档中插入一个或多个文档,多个时传入数组
- db.stus.insert([
- {name:“孙空”,age:11,gender:“男”}
- {name:“孙空”,age:11,gender:“男”}
- {name:“孙空”,age:11,gender:“男”}
- {name:“孙空”,age:11,gender:“男”}
])
- db.stus.insert([
- 向文档中插入一个或多个文档,多个时传入数组
-
例子:向test数据库中的stus集合中插入一条数据
- {name:“孙悟空”,age:11,gender:“男”}
- db.stus.insert({name:“孙 空”,age:11,gender:“男”})
-
insertOne():插入一个文档对象,只能插入一个对象
-
insertMany():插入多个文档对象,必须要穿个数组
-
-
查询文档
-
-
db.stus.find() --其中_id是mongodb自动生成的唯一的id,确保文档是唯一的根据机器码和时间戳生成
- 可以使用_id制定id属性{_id:1,name:“孙空”,age:11,gender:“男”},必须确保唯一性
-条件查询
- find()中可以接受一个对象作为条件参数,不穿是相当于查询全部
- find({name:“孙悟空”}),查询字段是指定值的文档
- find({name:“孙悟空”,age:“11”}) ,传多个字段时必须同时满足-
统计数量
- find().count() , count:查询之后统计数量
- find().length() , 查询之后统计数量
-
db.stus.findOne();查询集合中符合条件的第一个文档,也可以传入条件,同上
- 可以直接打点调用对象的属性
-
-
修改
-
-
update()默认情况下会使用新对象替换旧对象
-
修改时可以添加文档中本来没有的字段
-
db.stus.update(查询条件,修改的新对象)
- 语法:db..update(
<query 查询条件>,
<update 更新条件>,
{
upsert:,
multi:, 是否修改多个
writeConcern:,
collation:
}
) - db.stus.update({name:“孙悟空”},{age:123})
- 语法:db..update(
-
只修改指定的字段
-
$set 可以用来修改文档中的制定字段
-
db.stus.update({name:“孙悟空”},{$set:{name:“沙和尚”}})
-
$unset 删除文档的指定属性
-
db.stus.update({name:“孙悟空”},{$unset:{name:“沙和尚”}})
- 删除name为孙悟空的文档的name属性
-
-
updateMany()
- update 默认情况下之后修改第一个
- db.stus.updateMany({name:“孙悟空”},{$unset:{name:“沙和尚”}})
- 将所有名字为孙悟空的文档,的name属性修改为“沙和尚”
-
updateMany() 只修改一个
-
replaceOne() 替换文档
-
-
删除文档
-
-
db.stus.remove()
-
remove必须给出条件,find中不给条件表示查询全部
- db.stus.remove({name:“孙悟空”})
- 默认情况下删除多个
- 删除所有name为孙悟空的所有文档
- db.stus.remove({name:“孙悟空”})
-
db.stus.remove({name:“孙悟空”},true)
- 第二个参数传一个true时只删除一个
-
db.stus.deleteOne()
-
db.stus.deleteMany()
-
-
删除集合
- db.stus.drop()
- 删除集合,如果该集合是数据库中的最后一个集合,则删除之后该数据库也被删除
- db.stus.drop()
-
删除数据库
-
-
db.dropDatabase()
-
删除数据时如果不想真正的物理删除,就在数据中添加一个字段,区分是否删除
-
-
创建用户
-
- 选择admin数据库
- db.createUser({
user:“admin”,
pwd:“admin123”,
roles:[role:“root”,db:“admin”]
})
-