美文网首页
MongoDB数据库命令

MongoDB数据库命令

作者: 彝_e37e | 来源:发表于2019-11-28 16:46 被阅读0次

    你可以在mongodb官网下载该安装包,地址为:https://www.mongodb.com/download-center#community

    window安装mongodb教程:https://www.runoob.com/mongodb/mongodb-window-install.html

    linux安装mongodb教程:https://www.runoob.com/mongodb/mongodb-linux-install.html

    Mac OSX 安装教程:https://www.runoob.com/mongodb/mongodb-osx-install.html

    mongodb特点:

    MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。

    你可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。

    你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。

    如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。

    Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。

    MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。

    Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。

    Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。

    Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。

    GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。

    MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。

    MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。

    MongoDB安装简单。

    mongodb支持的数据类型:


    查看当前数据库名称:db

    列出所有在物理上存在的数据库:show dbs

    切换数据库 如果跑数据库不存在,则指向数据库,但不创建,直到插入数据或创建集合时才创建:use 数据库名称

    查看当前数据库信息:db.stats()

    db:当前数据库的名字。

    collections:当前数据库的集合数。

    objects:当前数据库所有集合总所包含的对象(即文档)的数量。

    avgObjSize:每个文档的平均大小(以字节为单位)。

    dataSize:此数据库中保存的未压缩数据的总大小,不是

    指占有磁盘大小,单位是bytes。

    storageSize:分配给此数据库的集合用于存储文档的空

    间总量,也就是当前数据库占有磁盘大小,单位是bytes。

    numExtents:当前数据库所有集合包含的扩展数量的统计。

    indexes:数据库中包含的所有集合的索引总数,也就是system.indexes表数据行数。

    indexSize:此数据库上创建的所有索引的总大小,单位是bytes。


    删除数据库:db.dropDatabase()

    创建集合:db.createCollection(name,options)

    查看当前数据库所有集合:show collections:当前数据库的集合数

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

    插入文档:db.集合名称.insert(document)

    注意:插入文档时,如果不指定_id参数,MongoDB会为文档分配一个唯一的ObjectId

    多条插入:db.stu.insert([{name:'王明',gender:1},{name:'王玲玲',gender:0}])

    查询全部文档:db.stu.find()

    更新文档:update()     save()

    update()更新已存在的文档

    全文档更新:db.stu.update({name:'xxxxx'},{name:'张xxx'})

    指定属性更新,通过操作符$set

    db.stu.insert({name:'李自成',gender:1}) db.stu.update({name:'李自成'},{$set:{name:'闯王李自成'}})

    修改多条匹配到的数据(跟新所有name为‘李自成’的文档的dender字段):

    db.stu.update({name:'李自成'},{$set:{gender:0}},{multi:true})

    save()方法:save() 方法通过传入的文档来替换已有文档,如果文档的_id已经存在则修改,如果文档的_id不存在则添加 db.集合名称.save(document)

    db.stu.save({_id:'20180820101010','name':'保存',gender:1})

    pretty():db.集合名称.find().pretty()

    删除文档:remove()db.集合名称.remove(document)

    :只删除1条,1表示是否只删除一条为true的意思

    db.集合名称.remove(document,1)

    db.集合名称.remove(document,{justOne:true})

    表示删除全部

    db.集合名称.remove({})

    基本数据查询:db.集合名称.find({条件文档})

    findOne():查询,只返回第一个

    db.集合名称.findOne({条件文档})

    比较运算符:

    等于,默认是等于判断,没有运算符

    小于$lt

    小于或等于$lte

    大于$gt

    大于或等于$gte

    不等于$ne

    条件运算符:查询时可以有多个条件,多个条件之间需要通过逻辑运算符连接

    逻辑与:默认是逻辑与的关系

    逻辑或:使用$or:db.stu.find({$or:[{age:{$gt:18}},{gender:1}]})

    and和or一起使用:db.stu.find({$or:[{age:{$gte:18}},{gender:1}],name:'gj'})

    范围运算符使用"$in","$nin" 判断是否在某个范围内:db.stu.find({age:{$in:[18,28]}})

    支持正则表达式:db.stu.find({name:/^黄/}) db.stu.find({name:{$regex:'^黄'}}})

    自定义查询:db.stu.find({$where:function(){return this.age>20}})

    $type:

    想要获取某一中类型的数据 例如:如果想获取 "col" 集合中 title 为 String 的数据,你可以使用以下命令:

    db.col.find({"title" : {$type : 'string'}})

    Limit与Skip方法:

    limit() 方法读取指定数量的数据记录

    基本语法如下所示:

    db.COLLECTION_NAME.find().limit(num)

    Skip() 方法使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。

    基本语法格式如下:

    db.集合名称.find().skip(num)

    limit() 方法、Skip() 方法 同时使用,不分先后顺序表示跳过多少条,返回多少条

    查询第5至8条数据

    db.stu.find().limit(4).skip(5)

    db.stu.find().skip(5).limit(4)

    sort() 方法排序:

    sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。

    基本语法如下所示:

    升序

    db.集合名称.find().sort({要排序的字段:1})

    降序

    db.集合名称.find().sort({要排序的字段:-1})

    根据多个字段排序: 例:先根据年龄做降序,再根据性别做升序

    db.集合名称.find().sort({age:-1,gender:1})

    注意:skip(), limilt(), sort()三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit()。

    distinct() 去重

    基本语法如下所示:

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

    例1:查找年龄大于20的姓名(去重)

    db.集合名称.distinct('name',{age:{$gt:20}})

    project投影(可以指定想要返回的字段)

    在查询到的返回结果中,只选择必要的字段,而不是选择一个文档的整个字段

    语法: 参数为字段与值,值为1表示显示,值为0不显示

    db.集合名称.find({},{字段名称:0,...})

    count() 统计个数

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

    表示返回集合中的文档数量

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

    在count()函数中添加条件

    例:统计年龄大于20的男生人数

    db.集合名称.count({age:{$gt:20},gender:1})

    相关文章

      网友评论

          本文标题:MongoDB数据库命令

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