mongodb入门

简介

文档

  1. eg: {“foo”:3,”greeting”:”Hello world!”}
  2. 区分大小写
  3. key唯一
  4. 文档可嵌套
  5. 键值对 有序

集合

  1. 集合就是一组文档
  2. 文档类似于 关系库里的 行
  3. 集合类似于 关系库里的表
  4. 集合中的文档无需固定的结构

集合命名规则:

数据库

  1. 多个文档组成集合,多个集合组成数据库
  2. 一个实例 可以承载多个数据库 (可以理解为一个mongodb可以有多个数据库)
  3. 每个数据库都有独立权限
  4. 保留的数据库名称(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()
>