MongoDB基础学习笔记

来源:互联网 发布:scientificlinux yum 编辑:程序博客网 时间:2024/06/05 03:23

MongoDB基础学习笔记

数据库操作

  • 创建、转到:use <database name>
  • 当前数据库:db
  • 所有数据库(新建的数据库要插入数据才会显示):show db
  • 删除数据库:db.dropDatabase()

集合操作

  • 所有集合:show tables
  • 删除集合:db.<table name>.drop()

文档操作

  • 插入数据(集合不存在自动创建):db.<table name>.insert({"col name":"value"})
  • 查询文档:db.<table name>.find()
  • 插入或更新(指定_id则是更新):db.<table name>.save({"col name":"value"})
  • 插入多条(3.2版本以上):

    db.<table name>.insertOne({"a": 3})db.<table name>.insertMany([{"b": 3}, {'c': 4}])
  • 更新文档:

    db.<table name>.update(   <query>, //查询条件   <update>, //更新内容   {     upsert: <boolean>, //不存在是否插入     multi: <boolean>, //只更新找到的第一条记录     writeConcern: <document> //抛出异常的级别   })db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})//只更新第一条记录db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );//全部更新db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );//只添加第一条db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );//全部添加加进去db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );//全部更新db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );//只更新第一条记录db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );
  • 删除文档

    db.<table name>.remove(   <query>, //(可选)删除的文档的条件   {     justOne: <boolean>, //(可选)如果设为 true 或 1,则只删除一个文档     writeConcern: <document> //(可选)抛出异常的级别   })//删除title为123的数据db.col.remove({'title':'123'})//删除所有数据db.col.remove({})

数据查询

  • 查询语法

    //查询,query条件,projection返回的键/列db.collection.find(query, projection)//pretty,以格式化的方式来显示结果db.col.find().pretty()
  • 操作符条件

    操作 格式 范例 等于 {<key>:<value>} db.col.find({"by":"123"}).pretty() 小于 {<key>:{$lt:<value>}} db.col.find({"likes":{$lt:50}}).pretty() 小于或等于 {<key>:{$lte:<value>}} db.col.find({"likes":{$lte:50}}).pretty() 大于 {<key>:{$gt:<value>}} db.col.find({"likes":{$gt:50}}).pretty() 大于或等于 {<key>:{$gte:<value>}} db.col.find({"likes":{$gte:50}}).pretty() 不等于 {<key>:{$ne:<value>}} db.col.find({"likes":{$ne:50}}).pretty()
  • and、or

    db.col.find({key1:value1, key2:value2}).pretty()db.col.find({$or: [{key1: value1}, {key2:value2}]}).pretty()
  • 类型匹配

    db.col.find({"title" : {$type : 2}})
    类型 数字 类型 数字 Double 1 Regular Expression 11 String 2 JavaScript 13 Object 3 Symbol 14 Array 4 JavaScript (with scope) 15 Binary data 5 32-bit integer 16 Undefined(已废弃) 6 Timestamp 17 Object id 7 64-bit integer 18 Boolean 8 Min key(Query with -1) 255 Date 9 Max key 127 Null 10 - -
  • Limit与Skip

    //查询结果前2条db.col.find({},{"title":1,_id:0}).limit(2)//跳过查询结果1条db.col.find({},{"title":1,_id:0}).skip(1)//分页第2页,每页10条db.col.find({},{"title":1,_id:0}).limit(10).skip(10)
  • 排序

    //语法,1为升序,-1为降序db.COLLECTION_NAME.find().sort({KEY:1})//例db.col.find({},{"title":1,_id:0}).sort({"likes":-1})

备份与恢复

  • 备份

    //-h:MongDB所在服务器地址;-d:需要备份的数据库实例;-o:备份的数据存放位置mongodump -h dbhost -d dbname -o dbdirectory
    语法 描述 实例 mongodump –host HOST_NAME –port PORT_NUMBER 该命令将备份所有MongoDB数据 mongodump –host 10.0.3.1 –port 27017 mongodump –dbpath DB_PATH –out BACKUP_DIRECTORY - mongodump –dbpath /data/db/ –out /data/backup/ mongodump –collection COLLECTION –db DB_NAME 该命令将备份指定数据库的集合。 mongodump –collection mycol –db test
  • 恢复

    //语法,--host <:port>, -h <:port>:服务器地址;--db , -d:数据库实例;//--drop:删除备份后添加修改的数据;<path>:备份数据所在位置;//--dir:指定备份目录,与<path>选其一mongorestore -h <hostname><:port> -d dbname <path>
原创粉丝点击