zoukankan      html  css  js  c++  java
  • Mongo小结

    开启mongo的姿势:

      cd /usr/local/mongo/bin(mongo的文件目录的bin目录下)

      sudo ./mongod (开启mongo服务)

      再新开一个终端

      cd /usr/local/mongo/bin

      sudo ./mongo (进入mongo数据库)

    数据库操作:

      use 数据库名字    使用/创建数据库

      show dbs        查看所有的数据库

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

      db          查看当前数据库

    集合操作:

    • 不手动创建集合: 向不存在的集合中第⼀次加⼊数据时, 集合会被创建出来
    • 手动创建结合:
      • db.createCollection(name,options)
      • db.createCollection("stu")
      • db.createCollection("sub", { capped : true, size : 10 } )
      • 参数capped: 默认值为false表示不设置上限,值为true表示设置上限
      • 参数size: 当capped值为true时, 需要指定此参数, 表示上限⼤⼩,当⽂档达到上限时, 会将之前的数据覆盖, 单位为字节
    • 查看集合:show collections
    • 删除集合:db.集合名称.drop()
    • 检查集合是否有上限: db.集合名.isCapped()

    数据操作:

        db.集合名.insert()    db.user.insert({"name":"UZI", "age": "18" })

        db.集合名.save()     db.user.save()

        db.集合名.update(<query> ,<update>,{multi: <boolean>})     

          参数query:查询条件

          参数update:更新操作符

          参数multi:可选, 默认是false,表示只更新找到的第⼀条记录, 值为true表示把满⾜条件的⽂档全部更新

          db.user.update({"name":"UZI"},{"name":"MLXG"})           将整个数据改为第二个{}里的内容
          db.user.update({"name":"UZI"},{$set:{"name":"hys"}})     将数据中的某个字段改为想改的值
          db.user.update({},{$set:{gender:0}},{multi:true})       将数据中的对应的值更改
    • 删 

        db.集合名.remove(<query>,{justOne: <boolean>})

          参数query:可选,删除的⽂档的条件

          参数justOne:可选, 如果设为true或1, 则只删除⼀条, 默认false, 表示删除多条

            db.user.remove({"name": "UZI"}, {justOne: <boolean>})

    • 基本查询

        ⽅法find(): 查询      

          db.集合名称.find({条件⽂档})

      

        ⽅法findOne():查询,只返回第⼀个

          db.集合名称.findOne({条件⽂档})

      

        ⽅法pretty(): 将结果格式化

          db.集合名称.find({条件⽂档}).pretty()

    • 条件查询

        比较查询 

      • 等于: 默认是等于判断, 没有运算符
      • ⼩于:$lt (less than)
      • ⼩于等于:$lte (less than equal)
      • ⼤于:$gt (greater than)
      • ⼤于等于:$gte
      • 不等于:$ne

          db.stu.find({ age:{ $gte:18 } })        查询年龄大于等于十八的

          db.stu.find({ time:{  $gte: ISODate("2018-05-11T13:58:51.122Z") } })  时间大于条件的结果

    • 逻辑运算查询
      • 逻辑与

           db.stu.find({ age:{ $gte:18 }, name:UZI }) 

      • 逻辑或   or:使⽤$or, 值为数组

          db.stu.find({ $or:[{age: { $gte:18 } }, { gender: true } ], name:UZI }) 查询年龄大于18或者性别为男,并且姓名为UZI的

    • 范围运算查询
      • 使⽤$in, $nin 判断数据是否在某个数组内

     

          db.stu.find({ age : { $in: [10,20,30] } })   查询年龄为10,20,30的结果

    •  正则表达式查询
      • 使⽤//或$regex编写正则表达式

           db.stu.find( {name: /^andy/ } )  查询姓名以andy开始的

           db.stu.find( { name: {$regex: '768$' } } )  查询姓名以768结尾的

    • skip 和 limit
      • limit( )   ⽤于读取指定数量的⽂档
      • skip( )   ⽤于跳过指定数量的⽂档

          db.stu.find().skip(10)  跳过前十条查询结果

          db.stu.find().limit(10)  查询十条结果

      • limit()和skip()同时使用,先使用skip在使用limit

          db.stu.find().skip(10).limit(10)  和 db.stu.find().limit(10).skip(10)  查询结果相同  先跳过前十条,在查询十条

    • 投影
      • 在查询到的返回结果中, 只选择必要的字段,参数为字段与值, 值为1表示显示, 值为0不显 特别注意: 对于_id列默认是显示的, 如果不显示需要明确设置为0

          db.stu.find( { }, {name:1,age:1 })   查询结果只显示name和age字段

    • 排序
      • ⽅法sort(), ⽤于对 集进⾏排序,参数1为升序排列 参数-1为降序排列

          db.stu.find().sort({ gender:1, age:-1 })

    • 统计个数
      • ⽅法count()⽤于统计结果集中⽂档条数

           db.stu.find().count()    统计结果的次数

           db.stu.count()        统计结果的次数

    • 去重
      • 方法distinct()用于对查询结果去重

          db.stu.distinct("hometown", {age:{$gte:18} })  对年龄大于18的结果以hometown去重

    关闭mango的正确姿势:

      use admin

      db.shutdownServer()

    mongoDB的备份与恢复

      mongo备份语法:mongodump -h dbhost -d dbname -o dbdirectory

    • -h:服务器地址,也可以指定端口号
    • -d:需要备份的数据库名称
    • -o:备份的数据存放位置,此目录中存放着备份出来的数据

      实例:mongodump -h 192.168.196.128:27017 -d test1 -o ~/Desktop/test1bak

      

      mongo恢复语法:mongorestore -h dbhost -d dbname --dir dbdirectory

    • -h:服务器地址
    • -d:需要恢复的数据库名称
    • --dir:备份的数据的位置

      实例:mongorestore -h 92.168.196.128:27017 -d test2 --dir ~/Desktop/test1bak/test1

    mongoDB的导入和导出

      导出语法: mongoexport -h dbhost -d dbname -c colname -o filename --type json/csv -f field

    • -h: 服务器地址
    • -d: 数据库名
    • -c: 集合名
    • -o: 导出文件名
    • --type: 文件类型,默认json格式,可选数据类型json,csv
    • -f: 需要导出的字段,导出为json格式的数据时可以不指定导出哪些字段,默认全部,导出成csv文件是必须指定

      示例:mongoexport -h 192.168.196.128:27017 -d test2 -c col1 -o test1_col1 [--type csv -f name,age,number]

      导出语法: mongoimport -d dbname -c colname --file filename [--headerline --type json/csv -f field]

    • -h: 服务器地址
    • -d: 数据库名
    • -c: 集合名
    • -o: 导出文件名
    • --type: 文件类型,默认json格式,可选数据类型json,csv
    • -f: 需要导出的字段,导出为json格式的数据时可以不指定导出哪些字段,默认全部,导出成csv文件是必须指定

      示例:mongoexport -h 192.168.196.128:27017 -d test2 -c col1 -o test1_col1 --type csv -f name,age,number

  • 相关阅读:
    大数据之路_1
    Echart图表设置项
    AsyncSocket
    book_.Net与设计模式
    book_精通正则表达式
    操作系统基本功能
    操作系统基础
    网络系统结构与设计的基本原则
    3.1EDA和数据描述: 探索性数据分析
    宽带城域网
  • 原文地址:https://www.cnblogs.com/ppzhang/p/10081555.html
Copyright © 2011-2022 走看看