欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Mongodb 学习笔记(一)

程序员文章站 2022-10-08 21:09:08
MongoDB 是一款开源、跨平台、分布式,具有大数据处理能力的文档存储数据库。在 2007 年由 MongoDB 软件公司开发完成,并实现全部代码源发展。目 前,该文档数据库被国内外众多知名网因所采纳,用于提高数据访问的处理速度 和大数据存储问题。 基本操作命令 : show dbs : 显示所有 ......

   mongodb 是一款开源、跨平台、分布式,具有大数据处理能力的文档存储数据库。在 2007 年由 mongodb 软件公司开发完成,并实现全部代码源发展。目 前,该文档数据库被国内外众多知名网因所采纳,用于提高数据访问的处理速度 和大数据存储问题。 

基本操作命令 :

  show dbs  :  显示所有数据库(空数据库不会显示)。

    use dbname  : 切换至  数据库 dbname。

       db.stats()    显示 数据库状态

  db.dropdatabase()  删除当前数据库。

  db. getcollectionnames ()  查看当前数据库下的所有集合的名称

  show roles   查看当前数据库的用户角色权限及用户名/密码信息

 增删改查:

  插入:

  db.student.insert({"name":"jason","age":20})    student 为集合名称,如果没有该集合,会自动创建。

    db.student.insert([{"name":"dalie","age":30},{"name":"sun","sex":"male"}]) 插入多条记录 。 同一个集合中的文档,key 不用保持一致。

  document = {"name":"biao","age":12}

    db.student.insert(document);                 也可以用声明变量的方式  将文档插入集合中

  db.student.insert([{"name":"wang","age":11},{"name":"goudan","age":1}],{ordered:true}) 顺序插入  ordered为true时,如存在主键冲突的数据,会导致全部插入失败,false时,除出错记录外,其他记录正常插入。

       查询:

  db.student.find()   列出该集合内所有文档。

  db.student.find({"name":"jason"})  括号内 可以填写 匹配条件  类似于 sql 中where

  db.student.fingone()   db.student.findone({"name":"jason"})   列出集合内符合条件的第一条文档

   db.student.find().pretty()  将结果 以优美的形式展示。

        db.student.find({},{name:1,age:1,_id:0}).pretty()    可以设置要查询的key ,1显示,0不显示。

  db.student.find().limit(2)  返回前两条文档

   db.student.find().skip(2) 跳过前两条文档,显示 之后的所有文档。

   db.student.find().skip(2).limit(1) 显示第三条文档。

   db.student.find({name:{$in:["mike","jason"]}})    $in 实现 范围查询。$in 用于不同文档指定同一个 key 进行或条件匹配, $or 可以指定多个 key 或条件匹配。

  db.student.find({$or:[{name:"jason"},{age:12}]})

        Mongodb 学习笔记(一)

  更新:

   db.student.update({name:"jason"},{$set:{age1:12}})  

   $set  更新要修改的字段  $unset 删除该字段  $rename 更改字段名 $inc 修改数值做加法运算。

   db.collection.updateone() 。与 update()唯一的 区别是命令语法里少了 一个 multi: <boolean>选项, 也就是 updateone()只适用于符合条件的一条文档的修改任务。

   db.collection.updatemany() 。与 update()唯一的区别是命令语法里少了 一个 multi: <boolean>选项, 也就是 updatemany()只适用于符合条件的多条文档的修改任务。
   db.collection.replaceone() 。与 update()的区别有两处, 一个没有 multi: <boolean> 选项;另外一个在第二个参数 cupdate 的<update>)里不能有更新操作符。

  删除

  db.student.remove("name":"jason") 删除姓名为jason的文档。

   db.student.remove({}) 删除集合内所有文档,但如果要删除整个集合 db.student.drop() 效率更高,它会直接删掉集合及索引。