简介
文档
- eg: {“foo”:3,”greeting”:”Hello world!”}
- 区分大小写
- key唯一
- 文档可嵌套
- 键值对 有序
集合
- 集合就是一组文档
- 文档类似于 关系库里的 行
- 集合类似于 关系库里的表
- 集合中的文档无需固定的结构
集合命名规则:
数据库
- 多个文档组成集合,多个集合组成数据库
- 一个实例 可以承载多个数据库 (可以理解为一个mongodb可以有多个数据库)
- 每个数据库都有独立权限
- 保留的数据库名称(admin,local,config)
使用命令行操作数据库
兼容js操作
1+2
3
function add(r1,r2){
… return r1 + r2;
… }
add(8,2)
10
新增数据
show dbs 查看所有数据库db.collection.insert()db.collection.insertOne()db.collection.insertMany()1
2
3> show dbs
admin 0.078GB
local 0.078GB
use test 使用 test 数据库 (没有就会创建)1
2
3
4
5
6
7
8
9
10> use students
switched to db students
> db # 查看当前数据库
students
> stu = { name : 'weilai', age : 22 }
{ "name" : "weilai", "age" : 22 }
> db.students.insert(stu)
WriteResult({ "nInserted" : 1 })
> db.students.insert({ "name" : "weilai1", "age" : 22, "sex": "male" })
WriteResult({ "nInserted" : 1 })
查询数据
db.collection.find()1
2
3> db.students.find()
{ "_id" : ObjectId("5de8a491ff626673ec5503c9"), "name" : "weilai", "age" : 22 }
{ "_id" : ObjectId("5de8a554ff626673ec5503ca"), "name" : "weilai1", "age" : 22, "sex" : "male" }
db.collection.findOne()1
2
3
4
5
6> db.students.findOne() # 查询第一条数据
{
"_id" : ObjectId("5de8a491ff626673ec5503c9"),
"name" : "weilai",
"age" : 22
}
修改数据
db.collection.update()1
2
3
4
5
6
7
8
9
10
11
12
13
14> db.students.find()
{ "_id" : ObjectId("5de8a491ff626673ec5503c9"), "name" : "weilai", "age" : 22 }
{ "_id" : ObjectId("5de8a554ff626673ec5503ca"), "name" : "weilai1", "age" : 22, "sex" : "male" }
> s = db.students.findOne()
{
"_id" : ObjectId("5de8a491ff626673ec5503c9"),
"name" : "weilai",
"age" : 22
}
> db.students.update({name:'weilai'},{name:'cool'})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.students.find()
{ "_id" : ObjectId("5de8a491ff626673ec5503c9"), "name" : "cool" } # 直接替换,并非仅修改 name 的值
{ "_id" : ObjectId("5de8a554ff626673ec5503ca"), "name" : "weilai1", "age" : 22, "sex" : "male" }
仅修改值1
2
3
4
5
6
7
8
9
10
11
12
13
14> s_obj = db.students.findOne({'name':'weilai1'})
{
"_id" : ObjectId("5de8a554ff626673ec5503ca"),
"name" : "weilai1",
"age" : 22,
"sex" : "male"
}
> s_obj.name = 'amy'
amy
> db.students.update({name:'weilai1'},s_obj)
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.students.find()
{ "_id" : ObjectId("5de8a491ff626673ec5503c9"), "name" : "cool" }
{ "_id" : ObjectId("5de8a554ff626673ec5503ca"), "name" : "amy", "age" : 22, "sex" : "male" }
删除数据
db.collection.remove({name:'cool'}) 删除 1条数据db.collection.remove({}) 删除所有数据1
2
3
4
5
6
7
8
9
10
11
12
13
14
15> db.students.insert({ "name" : "weilai1", "age" : 22, "sex": "male" })
WriteResult({ "nInserted" : 1 })
> db.students.find()
{ "_id" : ObjectId("5de8a491ff626673ec5503c9"), "name" : "cool" }
{ "_id" : ObjectId("5de8a554ff626673ec5503ca"), "name" : "amy", "age" : 22, "sex" : "male" }
{ "_id" : ObjectId("5de8ae63ff626673ec5503cb"), "name" : "weilai1", "age" : 22, "sex" : "male" }
> db.students.remove({name:'cool'})
WriteResult({ "nRemoved" : 1 })
> db.students.find()
{ "_id" : ObjectId("5de8a554ff626673ec5503ca"), "name" : "amy", "age" : 22, "sex" : "male" }
{ "_id" : ObjectId("5de8ae63ff626673ec5503cb"), "name" : "weilai1", "age" : 22, "sex" : "male" }
> db.students.remove({})
WriteResult({ "nRemoved" : 2 })
> db.students.find()
>