MongoDB

作者: _karen | 来源:发表于2020-08-15 11:42 被阅读0次

    MongoDB是最接近mysql的一种nosql
    默认端口:27017

    MongoDB 基础命令

    • 进入mongo:mongo
    • 基础命令启动 mongod
    • 加文件的启动 mongod -dbpath 路径
    • 加端口的启动 mongod --port
    • 后台启动mongod &
    • 将MongoDB设置成后台服务,每次开机就会启动(看官网)
      1.创建db 创建log mkdir db/data mkdir db/logs
      2.在MongoDB的bin目录下创建一个配置文件, mongod.cfg
      3.以管理员身份运行命令窗口
      4.执行命令 后面加上参数 start="auto" 具体命令看 MongoDB的官网 5.启动 连接 mongo用来启动客户端

    基本概念

    • 数据库database
      数据库是一个仓库,在仓库中可以存放集合
    • 集合collection
      集合类似于数组,在集合中可以存放文档
    • 文档document
      文档数据库中的最小单位,我们存储和操作的内容都是文档

    基础命令 (对文档进行增删改查)

    • 显示所有的数据库
      show dbs;
      show databases;
    • 进入指定的数据库中
      use test;
    • 查看当前所处的数据库
      db
    • 查看数据库中的集合
      show collections;
    • 增删改查
      MongoDB 插入文档
    db.<COLLECTION>.insert(document)  
    db.stus.insert({"name":"zhangsan","age":18,"gender":"男"});
    # 插入一条
    insertone()
    插入多条,用数组
    insertmany()
    db.stus.insert([{1},{2},{3}]);  
    增加多条记录,循环+函数
    for (var i=1;i<20000;I++){db.user,insert({num:i})}
    var arr = [] ; for (var i=1;i<20000;I++) (arr.push({num:i});)  db.user.insert(arr)      
    

    当我们向集合中插入文档时,如果没有给文档指定_id属性,则数据库会自动为文档增加_id,该属性用来作为文档的唯一标示,根据时间戳生成的,调用ObjectId()方法会自动生成

    • 查询当前集合中的所有文档
    db.collection.find() 
            db.stus.find()
                返回的是一个数组
                返回的数据可以通过下标访问db.stus.find()[2]
                find().count() 查询所有的记录条数
            find() 查询集合中所有符合条件的文档
                没条件就是找所有的
                    find({})
                    find()
                传条件find({字段名:"属性",字段名:"属性"})
                    find({name:"zhangsan"})
                    find({name:"zhangsan",gender:"男"})
            findone() 查询集合中符合条件的第一个文档,返回的是一个文档对象,可以直接对象.属性名
            如果要通过内嵌文档来对文档进行查询,此时属性名必须使用引号(单双引号都可以)
                db.users.find({'hobby.movies':"hero"})
            大于  查询num大于500的记录
                 db.collection.find({num:{$gt:500}}) 
            $gt $gte $lt $lte $eq
            查询显示前10条
                 db.collection.find().limit(10) 
            分页功能
                 db.collection.find().skip(10).limit(10) 
                skip() 用于跳过指定数量的数据
                 db.collection.find().skip(页码-1).limit(每页显示的条数) 
                skip和limit写的顺序没有关系,MongoDB会自动调整他俩的顺序
    
    • 修改文档
    db.collection.update(查询条件,新对象) 
                update默认会使用新对象替换之前的整个文档对象
                修改指定对象而非替换
                     db.collection.updateone({查询条件},{$set:{name:"zhangsan","id_no":11111111}}) 
                    常见的操作符
                        set
                            设置属性值
                        unset
                            删除属性值
                        
             db.collection.update({name:"zhangsan"},{name:'lisi'}) 
                db.collection.updateone
                db.collection.updatemany
                update默认情况下只会改一个
            替换一个文档db.collection.replaceone() 
            数组修改
                覆盖 $set
                追加 $push
                追加 $addtoset
                区别:addtoset只会增加不重复的记录,如果数组中已经存在该元素,则不会添加
            自增  $inc
    
    • 删除文档
    db.collection.remove(条件) 
                删除符合条件的所有文档,默认情况删除多个
                如果只想删除一个,加参数 justone:true
                     db.collection.remove(age:28,true) 
                remove()必须传参
                    如果传一个空对象,就会清空集合  remove({}),集合还在
             db.collection.deleteone() 
             db.collection.deletemany() 
            删除集合  db.stus.drop(),数据库也会被删除,如果数据库中只有一个集合的话
    
    • sort+投影
    sort
        默认id自增
        sort() 指定文档的排序规则  sort(‘s’:1) 1表示升序排列 -1表示降序排练  可以多个排序条件
        d.user.find({}).sort()
        limit()  sort() skip() 无顺序
    投影 只展示具体的字段,id默认展示
        d.user.find({},{name:1,_id:0}) 展示name,不展示_id
    

    相关文章

      网友评论

          本文标题:MongoDB

          本文链接:https://www.haomeiwen.com/subject/wiagdktx.html