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