MongoDB数据库命令

2019-11-28  本文已影响0人  彝_e37e

你可以在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})

上一篇下一篇

猜你喜欢

热点阅读