mongodb的初次使用

mongodb的初次使用

  • 数据库

  • 集合

  • 文档

  • 在mongodb中不需要手动创建数据库和集合,它会在你使用的时候自动创建

  • 安装

  • 登录

    • mongo --port 27017 -u “admin” -p “123456” --authenticationDatabase “admin”
  • 基本指令

  • show dbs
    -显示所有数据库

    use 数据库名
    -进入数据库
    - 如果没有则在第一次创建集合时创建

    db
    -显示当前所处的数据库

    show collectiongs
    -显示数据库中所有的集合

  • 数据库的CRUD操作

    • 向数据库中插入文档

      • db.集合的名字.insert(doc)

        • 向文档中插入一个或多个文档,多个时传入数组
          • db.stus.insert([
            • {name:“孙空”,age:11,gender:“男”}
            • {name:“孙空”,age:11,gender:“男”}
            • {name:“孙空”,age:11,gender:“男”}
            • {name:“孙空”,age:11,gender:“男”}
              ])
      • 例子:向test数据库中的stus集合中插入一条数据

        • {name:“孙悟空”,age:11,gender:“男”}
        • db.stus.insert({name:“孙 空”,age:11,gender:“男”})
      • insertOne():插入一个文档对象,只能插入一个对象

      • insertMany():插入多个文档对象,必须要穿个数组

    • 查询文档

      • db.stus.find() --其中_id是mongodb自动生成的唯一的id,确保文档是唯一的根据机器码和时间戳生成

        • 可以使用_id制定id属性{_id:1,name:“孙空”,age:11,gender:“男”},必须确保唯一性

        -条件查询
        - find()中可以接受一个对象作为条件参数,不穿是相当于查询全部
        - find({name:“孙悟空”}),查询字段是指定值的文档
        - find({name:“孙悟空”,age:“11”}) ,传多个字段时必须同时满足

        • 统计数量

          • find().count() , count:查询之后统计数量
          • find().length() , 查询之后统计数量
        • db.stus.findOne();查询集合中符合条件的第一个文档,也可以传入条件,同上

          • 可以直接打点调用对象的属性
    • 修改

      • update()默认情况下会使用新对象替换旧对象

      • 修改时可以添加文档中本来没有的字段

      • db.stus.update(查询条件,修改的新对象)

        • 语法:db..update(
          <query 查询条件>,
          <update 更新条件>,
          {
          upsert:,
          multi:, 是否修改多个
          writeConcern:,
          collation:
          }
          )
        • db.stus.update({name:“孙悟空”},{age:123})
      • 只修改指定的字段

        • $set 可以用来修改文档中的制定字段

        • db.stus.update({name:“孙悟空”},{$set:{name:“沙和尚”}})

        • $unset 删除文档的指定属性

        • db.stus.update({name:“孙悟空”},{$unset:{name:“沙和尚”}})

          • 删除name为孙悟空的文档的name属性
      • updateMany()

        • update 默认情况下之后修改第一个
        • db.stus.updateMany({name:“孙悟空”},{$unset:{name:“沙和尚”}})
          • 将所有名字为孙悟空的文档,的name属性修改为“沙和尚”
      • updateMany() 只修改一个

      • replaceOne() 替换文档

    • 删除文档

      • db.stus.remove()

      • remove必须给出条件,find中不给条件表示查询全部

        • db.stus.remove({name:“孙悟空”})
          • 默认情况下删除多个
          • 删除所有name为孙悟空的所有文档
      • db.stus.remove({name:“孙悟空”},true)

        • 第二个参数传一个true时只删除一个
      • db.stus.deleteOne()

      • db.stus.deleteMany()

    • 删除集合

      • db.stus.drop()
        • 删除集合,如果该集合是数据库中的最后一个集合,则删除之后该数据库也被删除
    • 删除数据库

      • db.dropDatabase()

      • 删除数据时如果不想真正的物理删除,就在数据中添加一个字段,区分是否删除

    • 创建用户

      • 选择admin数据库
      • db.createUser({
        user:“admin”,
        pwd:“admin123”,
        roles:[role:“root”,db:“admin”]
        })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值