MongoDB初识

1、数据库

        MongoDB初始启动的时候,内置的三个数据库admin,config,local,可以使用命令show dbs查看所有的数据库,使用db查看当前所处的数据库,使用use dbName来初始化创建或者切换数据库。使用db.dropDatabase()来删除数据库,此函数默认删除当前数据库。

               show dbs  ---查看所有数据库,命令行

               db   ----查看当前数据库,命令行

               use mongoTest  ---如果mongoTest数据库存在则切换至此数据库,如果不存在则创建数据库并切换至此数据库。只有在此数据库中插入数据,才会真正创建数据库,譬如db.mongoTest.insert({a:2}),此时mongoTest数据库才建立。

             

2、表

        MongoDB中表的概念是集合,也即是collections。显示数据库中的所有表使用show collections。创建表,插入数据的时候就默认会创建表,譬如db.t_user.insert({name:"mengmiao",age:6,sex:'man'}),此时t_user即为表名,插入函数是基于表的

 

3、记录

       Mongobd中记录的概念就是文档,即document,表中的字段和类型没有强制要求,文档的集合即为表,MongoDB中表的没有固定的列名,类型。是文档形式的。这就是mongo的特色之所在。记录即文档的大小限制,文档最大不能超过4M。

       可以使用Object.bsonsize(doc);可以查看文档转为bson格式时的大小。

       当前MongoDB的协议消息的最大长度限制是16M,所以在做批量插入时要注意这个限制。

       MongoDB将文档保存到集合中时,不执行文档,这样做天生就避免了注入攻击,使数据库更安全。

       MongoDB删除数据是永久性的,不能撤销,也不能恢复。

       

新增记录:
     插入一条:
     db.inventory.insertOne(
       { item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" }                 }
     );
     插入多条:
     db.inventory.insertMany([
        { item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },
        { item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
        { item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom:   "cm" } }
     ])
 
查询记录:
     查询所有:
        db.inventory.find()
     按条件查询:
        db.inventory.find({item:"mat"})
        db.inventory.find( { status: { $in: [ "A", "D" ] } } )
        db.inventory.find( { status: "A", qty: { $lt: 30 } } )   ---$lt = <
        db.inventory.find( { $or: [ { status: "A" }, { qty: { $lt: 30 } } ] } ) ---status = "A" OR qty < 30
        db.inventory.find( {
           status: "A",
           $or: [ { qty: { $lt: 30 } }, { item: /^p/ } ]
        })  --- status = "A" AND ( qty < 30 OR item LIKE "p%")
        db.inventory.find( { item: null } )
        db.inventory.find( { item : { $exists: false } } )
        

更新记录:
    更新一条:
        db.inventory.updateMany(
           { "qty": { $lt: 50 } },
           {
             $set: { "size.uom": "in", status: "P" },
             $currentDate: { lastModified: true }
           }
       )
    更新多条:
        db.inventory.updateOne(
           { item: "paper" },
           {
             $set: { "size.uom": "cm", status: "P" },
             $currentDate: { lastModified: true }
           }
        )
    替换一条:
       db.inventory.replaceOne(
          { item: "paper" },
          { item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 40 } ] }
       )

删除记录:
    删除一条:
       db.inventory.deleteOne( { status: "D" } )
    删除多条:
       db.inventory.deleteOne({ "qty": { $lt: 50 } })
    删除全部:
       db.inventory.deleteMany({})

删除表,也就是删除collections:
    db.drop_collection("inventory");

 

4、db.collections.insert(), db.collections.insertOne(), db.collections.insertMany()的区别

         使用insert方法,可以进行插入一条或者多条的操作,但shell界面打印的回执不同。使用insertOne插入一条文档,使用insertMany插入多条文档。insert方法被弃用,新版本基本上都使用insertOne或者insertMany。

         

      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值