软件测试学习笔记丨MongoDB 数据库

在这里插入图片描述

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/29854

一,nosql数据库优点

  • NoSql(Not Only SQL)
  • key : value结构
  • CAP - > BASE
  • 一致性 (Consistency) ( 所有节点在同一时间具有相同的数据 )
  • 可用性 (Availability) ( 保证每个请求不管成功或者失败都有响应 )
  • 分隔容忍 (Partition tolerance) ( 系统中任意信息的丢失或失败不会影响系统的继续运作 )

二,MongoDB特点

  • 非关系型数据库 nosql
  • 文档存储:类 json 格式
  • 有机会对字段建立索引,实现关系数据库

三,MongoDB下载

四,MongoDB 数据库操作

4.1 配置数据库目录

  • 运行 MongoDB 服务器
  • mongod –dbpath xxx
  • 连接 MongoDB:mongo

4.2 数据库操作

  • 查看当前数据库: show dbs
  • 切换数据库(如果没有会自动创建):use demo1
  • 往数据库中插入一条数据: db.demo1.insert({“name”: “ 小红” }
  • 切换数据库:use demo1
  • 删除数据库:db.dropDatabase()

4.3 集合相关命令

  • 创建集合:db.createCollection(‘collection1’)
  • 查看已经创建的集合:show collections
  • 删除集合: db.collection1.drop()

4.4 文档操作

  • 文档是 mongodb 中的基本单元,相当于表中的一条记录,以 json 格式显示

  • 插入文档时, MongoDB 自动创建集合: db.collectionDemo.insert({“name” : “hello"})

  • 查看插入的内容:db.collectionDemo.find().pretty()

  • 声明变量,插入复杂文档:

    • document=({title: ‘MongoDB’, by: ‘RuotongYu’, tags: [‘mongodb’, ‘database’, ‘NoSQL’],});
    • db.collectionDemo.insert(document)
  • 拓展用法:

image

  • 更新文档
   *  格式:db.collection.update( <query>, <update>, {upsert: <boolean>, multi: <boolean>, 
                 writeConcern: <document> } )

     ❖ upsert : 如果不存在 update 的记录,是否插入,默认 false
     ❖ multi : 把按条件查出来多条记录全部更新,默认 fasle
     ❖ writeConcern : 抛出异常的级别。
     ❖ 注意:: update 是替换,没有修改的字段会消失!
  • 修改文档

    • 修改文档:db.col.update({‘title’:'MongoDB’}, {‘title’:‘MongoDB123’})
    • 修改多个文档:db.col.update({‘name’:‘hello’},{$set:{‘name’:‘hello123’}},{multi:true})
  • 删除文档

    • 删除多个文档:db.col.remove({‘name’:‘hello123’})
    • 删除一个文档:db.col.remove({‘name’:‘hello’},1)

4.4 操作符运用

  • 修改操作符 $inc

    • 用法: {$inc:{field:value}}

    • 作用:对一个数字字段的某个 field 增加 value

    • 示例:将 name 为 xiaohong 的学生的 age 增加 5

      • db.students.update({name:“xiaohong”},{$inc:{age:5}})
  • 修改操作符 $set

    • 用法: {$set:{field:value}}

    • 作用:把文档中某个字段 field 的值设为 value

    • 示例: 把 xiaohong 的年龄设为 10 岁

      • db.students.update({name:“xiaohong”},{$set:{age:10}})
  • 修改操作符 $unset

    • 用法: {$unset:{field:1}}

    • 作用:删除某个字段 field

    • 示例: 将 chenzhou 的年龄字段删除

      • db.students.update({name:“chenzhou”},{$unset:{age:1}})
  • 修改操作符 $push

    • 用法: {$push:{field:value}}

    • 作用:把 value 追加到 field 里。注: field 只能是数组类型,如果 field 不存在,会自动插入一个数组类型

    • 示例:给 chenzhou 添加别名 “michael”

      • db.students.update({name:“chenzhou”},{$push:{“ailas”:“Michael”}})
  • 修改操作符 $rename

    • 用法: {$rename:{old_field_name:new_field_name}}

    • 作用:对字段进行重命名

    • 示例:把 xiaohong 记录的 name 字段重命名为 hello

      • db.students.update({name:“xiaohong”},{$rename:{“name”:“name2”}})

微信图片_20240219162630.bmp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值