Mongodb的简单使用

一. 基本概念

数据库(database)

集合(collection)

文档(document)

三者关系:数据库中包含多个集合,每个集合又包括多个文档

在Mongodb中,数据库和集合都不需要手动创建,当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建数据库和集合

 

二. 基本指令

show databases(dbs) :  显示当前所有数据库

use 数据库名: 进入到指定的数据库中

db:表示的是当前所处的数据库

show collections:显示数据库中所有的集合

 

三. 数据库的CRUD(增删改查)的操作

1  向数据库中插入文档(增)

db.<collection>.insert(doc)  :   向集合中插入一个或多个文档

当向集合插入文档时,如果没有给文档指定_id属性,则数据库会自动为文档添加_id(该属性作为文档的唯一标识,在mysql中称为主键),_id我们可以自己指定,如果我们指定了数据就不会再添加了,如果自己指定_id,也必须确定它的唯一性

例:

向test库中的stus集合中插入一个新的学生对象

  db.stus.insert({name:"孙悟空", age:"18", gender:"男"})

向test库中的stus集合中插入多个新的学生对象

  db.stus.insert([

   {name:"张三", age:"18"},

   {name:"李四", age:"20"}

  ])

2.  查询

(1)db.<collection>.find()

find()用来查询集合中所有符合条件的文档,其可以接受一个对象作为条件参数

{}表示查询集合中所有文档,如:db.<collection>.find({})

注意,find()返回的是一个数组

{属性:值}  查询属性时指定值的文档  如db.stus.find({name: “张三”})

(2)db.<collection>.findone():

用来查询集合中符合条件的第一个文档

findone()返回的是一个文档对象

(3)db.<collection>.findmany():

   用来查询集合中符合条件的所有文档

3. 修改

db.collection.update(查询条件,新对象),此处的新队向表示要修改的新内容

(1)update()默认情况下会使用新对象来替换旧的对象

如:db.stus.update({name:"张三"}, {age:33}),此语句会将name为张三的文档修改为只包括age:33的文档,并不会在源文档基础上只修改年龄属性

(2)如果要修改制定属性,而不是替换,需要使用“修改操作符”来完成修改

     $set: 可以用来修改文档中的指定属性

  $unset : 可以用来删除文档的指定属性

如:

db.stus.update(
    {name:"张三"},
    {$set:{
         name:“猪八戒”
    }}           
)

运行后,张三就被改成猪八戒了

(3)db.collection.updateMany():

  同时修改多个符合条件的文档

(4)db.collection.updateOne()

  修改一个符合条件的文档

4.  删除

(1)db.collection.remove()  :

删除符合条件的所有文档(默认情况下回删除多个),如果remove()第二个参数传递一个true,则只会删除符合条件的文档,如:

db.stus.remove({age: 28}, true)

如果只传递一个空对象作为参数,则会删除集合中的所有文档

remove()也可以根据条件来删除文档,传递条件的方式和find()一致

(2)db.collection.deleteOne(): 删除一个文档

(3)db.collection.deleteMany(): 删除多个文档

(4)db.collection.drop() : 删除集合(此操作比删除文档效率高,因为删除文档是将文档一个一个的删除,此时直接删除集合)

(5)db.dropDatabase():    删除数据库

 

5. 文档与文档键的关系

(1)一对一

(2)一对多或多对一

(3)多对多

 

posted @ 2019-07-29 10:01  一y样  阅读(180)  评论(0编辑  收藏  举报