首页 > 技术文章 > MongoDB数据库

dyd520 2019-09-02 19:59 原文

开启MongoDB服务

use book      创建/进入

db 获取当前使用的数据库

show dbs   获取所有的数据库

show tables  获取所有的集合【表】

db.createCollection("集合名")  创建集合  

db.createCollection("product1")

 

插入文档(一行数据)

db.集合.insert()    插入文档

db.集合.insertone()    插入一个文档

db.集合.insertMany()    插入一个文档

db.product1.insertMany([{"name":"dd"},{"name":"xx"}])

 

db.集合.fend()   查询文档

db.集合.save   对于_id已存在的文档,save方法会用新的文档覆盖旧的文档,对于_id 不存在的文档,save方法会插入文档

db.product1.remove(条件)

如:db.product1.remove({"name":"iPhoneX"})

 

删除单条数据或多条

db.product1.remove(条件,参数)       

注:不给参数或参数为0,删除多条,其余情况都删除一条(参数为true删除一条,为false删除多条)

db.product1.remove({"name":"iPhoneX"},1)

删除数据

db.product1.deleteOne({"name":"iPhoneX"})  删除一条

db.product1.deleteMany({"name":"iPhoneX"})  删除多条

删除所有数据

db.product1.remove({})

 

修改数据

db.集合名.update(

  <query>,

   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }

)

  • query : update的查询条件,类似sql update查询内where后面的。
  • update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
  • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
  • writeConcern :可选,抛出异常的级别。

修改 找到的第一条数据

db.product1.update({"name":"iPhoneX"},{$set:{"name":"iPhoneXXX"}})

upsert 为true  如果找到文档正常修改,如果找不到文档,则修改条件和查询条件创建新的文档插入

db.product1.update({"name":"iPhoneX"},{$set:{"author":"rose"}},{upsert:true})

修改多个

db.product1.update({"name":"iPhoneX"},{$set:{"name":"iPhoneXXX"}},{multi:true})

修改文档的参数  用$inc     只能加和减   进行计算的字段为num类型

db.product1.update({"name":"iPhoneX"},{$inc:{"price":-10}})

修改字段名    $rename

修改一条数据字段

db.product1.update({$rename:{"view":"num"}}) 

修改多条数据字段

db.product1.update({$rename:{"view":"num"}},false,true) 

update  的隐性参数  upsert  有则改,无则插  multi 是否执行多条

 

获取json

var book1=db.product1.findOne({"name":"iPhoneX"})
获取name    如  :book.name  或  book["name"]  

注:获取文档中的id时需要加下滑线 如:book1["_id"] 

推荐阅读