MongoDB基础学习笔记

本文介绍MongoDB的基础操作,包括数据库、集合与文档的增删改查。覆盖了创建数据库、集合,插入、查询、更新及删除文档等常用命令。同时介绍了如何使用条件操作符进行精确查询,以及排序、分页等高级功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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}})
    类型数字类型数字
    Double1Regular Expression11
    String2JavaScript13
    Object3Symbol14
    Array4JavaScript (with scope)15
    Binary data532-bit integer16
    Undefined(已废弃)6Timestamp17
    Object id764-bit integer18
    Boolean8Min key(Query with -1)255
    Date9Max key127
    Null10--
  • 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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值