MongoDB02

基本概念:

MangoDB数据库属于NoSQL(Not Only SQL),与之相对的就是RDBMS类型数据库,比如:mysql

二者的既有联系又有区别:

(1)数据库database:二者是一样的

(2)集合Collection:相当于“表”table

(3)文档document:相当于表中的“行”row

(4)域field:相当于表中的“字段/列”column

(5)_id:相当于表中的“主键”

 

二、基本操作:

1. 数据库database:

(1)查看所有数据库:show dbs

(2)查看当前数据库:db

(3)创建/切换数据库:use 数据库名

注:如果数据库不存在,则创建数据库,并切换至该数据库;如果数据库存在,则至切换至数据库

> use database001
switched to db database001

 

 (4)删除当前数据库:db.dropDatabase()

注意:在 MongoDB 中,数据库、集合只有在内容插入后才会创建!!!

就是说,创建数据库、集合(数据表)后要再插入一个文档(记录),数据库、集合才会真正创建。

 

> use database002
switched to db database002
> db
database002
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
> db.database002.insert({"name":"123"})
WriteResult({ "nInserted" : 1 })
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
database002  0.000GB

 

 

 

可以看到,在创建数据库database002后,第一次show dbs,没有显示出,有database002。当向database002中插入了数据{"name": "123"}后,show dbs,才显示有database002。

 

2.集合Collection:

(1)查看已有集合:show collections 或  show tables

(2)创建集合:db.createCollection(name, options)

参数:

  • name:要创建的集合名称
  • options(可选参数):指定有关内存大小及索引

 

eg:

不带options参数:

> db.createCollection("col001")
{ "ok" : 1 }

 带options参数:

> db.createCollection("col002", {capped: true, autoIndexId: true, size: 128, max: 10})
{ "ok" : 1 }

 

 在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。

> db.col003.insert({"name" : 123})
> show collections
col001
col002
col003

 

 (3)删除集合:db.集合名.drop()

返回值:如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false。

eg:删除集合“col003”

>db.col003.drop()
true

 3. 文档document:

(1)插入文档:

  • 插入数据:db.集合名.insert(文档, mutil=false)     
  • 插入单条数据:db.集合名.insertOne(文档)
  • 插入多条数据:db.集合名.insertMany(文档)

eg: 

 

#insertOne()插入单条数据:
db.col001.insertOne({"name": "A", "age": 10, "status": "stu"})

#insertMany()插入多条数据:
db.col001.insertMany([{"name": "B", "age": 20, "status": "teacher"},
             {"name": "C", "age": 30, "status": "stu"},
             {"name": "D", "age": 40, "status": "stu"}
]) #insert()既可以插入单条数据,又可以插入多条数据
db.col001.insert({"name": "E", "age": 50, "status": "stu"})
db.col001.insert([{"name": "B", "age": 20, "status": "teacher"},
           {"name": "C", "age": 30, "status": "stu"},
           {"name": "D", "age": 40, "status": "stu"}
)

注:col001为集合名称,如果该集合不在该数据库中,则MangoDB会自动创建该集合并插入文档

(2)删除文档:

  • 删除一个或多个数据:db.集合名.remove()
  • 删除一个数据:db.集合名.deleteOne() 
  • 删除多个数据:db.集合名.deleteMany()

(3)修改更新文档:

  • 更新匹配到的一个或者多个文档:db.集合名.update()
  • 只更新匹配到的一个文档:db.集合名.updateOne()
  • 更新匹配到的所有文档:db.集合名.updateMany()
  • 最多只更新匹配到的一个文档:db.集合名.replaceOne()

(4)查询文档:

db.集合名.find(query, projection)


 

posted @ 2019-06-27 16:11  Loser_King  阅读(127)  评论(0编辑  收藏  举报