【Mongodb】mongodb数据库的基础命令

目录

1. mongodb库命令

2. mongodb集合命令

3. mongodb中常见数据类型

4. mongodb的增删改查


1. mongodb库命令

    查看当前数据库:db(没有切换数据库的情况下,默认使用test数据库)

    查看所有数据库:show dbs

    切换数据库:use db_name

    删除当前数据库:db.dropDatabase()

2. mongodb集合命令

    mysql结构:库,表,数据

    mongodb结构:库,集合,文档

    不手动创建集合:向不存在的集合中第一次插入数据时,集合会被创建出来

    也可以手动创建:

        db.createCollection('集合名')

        db.createCollection("集合名", { capped : true, size : 10 } )

        参数capped: 默认值为false,表示不设置上限,值为true表示设置上限

        参数size: 当capped值为true时, 需要指定此参数, 表示上限10,当文档达到上限时, 会将之前的数据覆盖, 单位为字节

        查看集合:show collections

        删除集合:db.集合名称.drop()

        检查集合是否有上限: db.集合名.isCapped()→返回True或False

3. mongodb中常见数据类型

    Object ID:文档ID

    String:字符串,最常用,必须是有效的utf-8

    Boolean:存储一个布尔值

    Integer:整数可以是32位或64位,取决于服务器

    Double:存储浮点值

    Arrays:列表,多个值存储到一个键

    Object:用于嵌入式的文档,即值为文档

    Null:存储Null值

    Timestamp:时间戳,表示从1970-1-1到现在的总秒数

    Date:存储当前日期或时间的UNIX时间格式

    注意点:每个文档都有_id属性,保证每个文档的唯一性,mongodb默认使用_id作为主键,类型为Object ID,objectID是一个12字节的十六进制数,每个字节两位,一共是24 位的字符串: 前4个字节为当前时间戳 接下来3个字节的机器ID 接下来的2个字节中MongoDB的服务进程id 最后3个字节是简单的增量值(计数器)

4. mongodb的增删改查

    增:

        db.集合名.insert({name:'lili',gender:1})

        如果不指定_id参数,会自动分配一个唯一的Object ID

        db.集合名.save({_id:"20180808",name:'lili',gender:1})

        如果_id存在则修改,不存在则添加

    删:

        db.集合名.remove({条件,如gender:1},{justOne: false/true})

        参数justOne:可选, 如果设为true或1, 则只删除1条, 默认false, 表示删除多条

    改:

        db.集合名.update({条件}, {$set:{文档/更新的内容}}, {multi:false/true}) 默认是false,表示只更新找到的第一条数据,true表示满足条件的全部更新

    查:

        db.集合名.find({条件})    查询集合中的所有文档

        db.集合名称.find({条件}).pretty()    格式化输出,配合find使用

        db.集合名称.findOne({条件})    返回一条

        比较运算符:

            不等于:$ne

            小于:$lt

            小于等于:$lte

            大于:$gt

            大于等于:$gte

        逻辑运算符:

            与:直接在文档中写多个条件即可

                如:db.stu.find({age:18,gender:true})

            或:使用$or,在列表中写条件

                如:db.stu.find({$or:[{age:18},{gender:false}]})

        范围运算符:

            使用$in, $nin查找的数据条件范围在某个数组内,满足条件的数据都

                db.stu.find({age:{$in:[18,20]}})    查找年龄为18或者20的数据

        正则表达式:

            使用//或$regex编写正则表达式

                查询name以‘赵’开头的数据    db.stu.find({name:/^赵/})    或:db.stu.find({name:{/$regex:'^赵'}})

        自定义查询:

            由于mongo的shell是一个js的执行环境,在$where后写一个函数,返回满足条件的数据

            db.stu.find({

                $where:function() {

                    return this.age>30;}

            })

        skip和limit

            limit:查询指定数量的文档

                db.集合名.find()limit(指定数量)

            skip:跳过指定数量的文档

                db.集合名.find().skip(指定数量)

            同时使用(先skip再limit效率高于xianlimit后skip):

                db.集合名.find(指定数量).skip().limit(指定数量)

        投影:

            在查询到的结果中,只显示指定的字段

            db.stu.find({},{_id:0,name:1,gender:1})

            参数为字段与值, 值为1表示显示, 值为0不显 特别注意: 对于_id列默认是显示的, 如果不显示需要明确设置为0

        排序:

            db.stu.find().sort({age:1})    参数为1:升序,参数-1:降序

        统计个数:

            db.集合名称.find({条件}).count()     

            db.集合名称.count({条件})

        消除重复:

            db.集合名称.distinct('去重字段',{条件})

            db.stu.distinct('city',{age:{$gt:18}})    查出年龄大于18的所有文档,对城市去重

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值