【注意:MongoDB自动将_id字段设置为主键】

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->

话不多说  直接 开始敲命令吧!

【注意1:MongoDB  命令结尾不要打;  是会报错的】

【注意2:RoboMongo  执行命令的快捷键是F5   停止执行快捷键是F6】

1.show dbs

显示所有数据的列表

2.db

显示当前数据库对象或集合

3.use

可以连接到一个指定的数据库

4. db.createCollection("myNewCollection",{capped:true,size:1024}) 

固定大小的collection【collection大小单位是字节】【capped:true 代表固定大小】

5.db.collection.stats()

产看当前db下的某个collection的详细信息

例如:

db.users.stats()

 {
"ns" : "oneDB.users",
"count" : 4,
"size" : 256,
"avgObjSize" : 64,
"numExtents" : 1,
"storageSize" : 8192,
"lastExtentSize" : 8192.0,
"paddingFactor" : 1.0,
"paddingFactorNote" : "paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only.",
"userFlags" : 1,
"capped" : false,
"nindexes" : 1,
"totalIndexSize" : 8176,
"indexSizes" : {
"_id_" : 8176
},
"ok" : 1.0
}
 部分参数的详细解释:
ns: 集合的命名空间,可以理解为集合名称
count: 集合中的文档总数
size: 集合中数据占用空间大小,不包括索引 ,单位为字节。
avgObjSize: 平均对像占用的空间大小
storageSize: 给整个集合分配的存储空间,当删除集合中的文档时,这个值不会降代。
numExtents: 连续分配的数据块
nindexes: 索引个数,每个集合至少有一个 _id 索引。
lastExtentSize: 最近分配的块的大小
paddingFactor: 这个参数不太清楚,以后补充。
totalIndexSize: 所有索引大小总和
indexSizes: 列出集合的所有索引字段,以及索引大小。

6.db.dropDatabase()

删除当前数据库

7.use  dbName

有则指定到这个数据库,没有则创建这个数据库  但是创建之后是默认不会显示在数据库列表的,需要往里面插入一条数据 就能显示出来了

【注意:插入数据应该有大括号括起来的{}】

例如:

use oneDB
db
db.users.insert({_id:1,"name":"张三丰","age":23})

8.db.collection.drop()

删除集合

例如:

9. 定义变量 插入数据

document = {_id:1,"name":"张三","age":23,"url":"www.baidu.com"}
db.users.save(document)

10. 更新某一条数据

db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
  • query : update的查询条件,类似sql update查询内where后面的。
  • update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
  • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
  • writeConcern :可选,抛出异常的级别。

例如:

db.users.update({_id:1},{$set:{"url":"https://home.cnblogs.com/u/sxdcgaq8080/"}},{upsert:true,muti:true})
db.users.find()

11.db.users.find()  查询【各种查询】

  find() 方法以非结构化的方式来显示所有文档

db.users.find().pretty()

  如果你需要以易读的方式来读取数据,可以使用 pretty() 方法;pretty() 方法以格式化的方式来显示所有文档

db.users.findOne()

  findOne() 方法,它只返回一个文档

操作 格式 范例 RDBMS中的类似语句
等于 {<key>:<value>} db.users.find({"name":"张三"}).pretty() where by = '张三'
小于 {<key>:{$lt:<value>}} db.users.find({"age":{$lt:23}}).pretty() where likes < 23
小于或等于 {<key>:{$lte:<value>}} db.users.find({"age":{$lte:23}}).pretty() where likes <= 23
大于 {<key>:{$gt:<value>}} db.users.find({"age":{$gt:23}}).pretty() where likes > 23
大于或等于 {<key>:{$gte:<value>}} db.users.find({"age":{$gte:23}}).pretty() where likes >= 23
不等于 {<key>:{$ne:<value>}} db.users.find({"age":{$ne:23}}).pretty() where likes != 23
 例如:等于-->db.users.find({"age":23})



小于-->db.users.find({"age":{$lt:25}})

小于等于-->db.users.find({"age":{$lte:25}})

AND 条件查询

例如:db.users.find({"age":{$lte:25},"name":"张三"})

两个key-value并列放着就行了

OR条件查询

例如:db.users.find({$or:[{"name":"张三"},{"age":25}]})

【注意:需要使用  {$or:[{key:value},{key:value}]}这种格式】

AND和OR混用的情况

例如:db.users.find({"age":{$gte:23},$or:[{_id:1},{"name":"里斯"}]})

剖析一下结构:

db.users.find({
  "age":{$gte:23},
  $or:[
    {_id:1},
    {"name":"里斯"}
  ]
})

12.$type操作符

$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果

MongoDB中的  数据类型对应数字如下:

类型 数字 备注
Double 1  
String 2  
Object 3  
Array 4  
Binary data 5  
Undefined 6 已废弃。
Object id 7  
Boolean 8  
Date 9  
Null 10  
Regular Expression 11  
JavaScript 13  
Symbol 14  
JavaScript (with scope) 15  
32-bit integer 16  
Timestamp 17  
64-bit integer 18  
Min key 255 Query with -1.
Max key 127  

例如:db.users.find({_id:{$type:1}})

查询_id格式为double类型的 结果:

  

例如:db.users.find({_id:{$type:7}})

查询_id格式为object id类型的  结果:

   

13.limit()

在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数【默认为0】

例如:db.users.find({_id:{$type:7}}).limit(3)

14.skip()

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

例如:db.users.find({_id:{$type:7}}).skip(3)

15.sort()排序

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

例如:db.users.find({_id:{$type:7}}).sort({_id:-1})

16.索引 ensureIndex()

创建索引--> db.users.ensureIndex({_id:1})   【1代表升序  -1代表降序】

创建多个索引-->db.users.ensureIndex({_id:1,"name":-1})

创建带参数的索引-->db.users.ensureIndex({_id:1},{unique:true})

Parameter Type Description
background Boolean 建索引过程会阻塞其它数据库操作,background可指定以后台方式创建索引,即增加 "background" 可选参数。 "background" 默认值为false
unique Boolean 建立的索引是否唯一。指定为true创建唯一索引。默认值为false.
name string 索引的名称。如果未指定,MongoDB的通过连接索引的字段名和排序顺序生成一个索引名称。
dropDups Boolean 在建立唯一索引时是否删除重复记录,指定 true 创建唯一索引。默认值为 false.
sparse Boolean 对文档中不存在的字段数据不启用索引;这个参数需要特别注意,如果设置为true的话,在索引字段中不会查询出不包含对应字段的文档.。默认值为 false.
expireAfterSeconds integer 指定一个以秒为单位的数值,完成 TTL设定,设定集合的生存时间。
v index version 索引的版本号。默认的索引版本取决于mongod创建索引时运行的版本。
weights document 索引权重值,数值在 1 到 99,999 之间,表示该索引相对于其他索引字段的得分权重。
default_language string 对于文本索引,该参数决定了停用词及词干和词器的规则的列表。 默认为英语
language_override string 对于文本索引,该参数指定了包含在文档中的字段名,语言覆盖默认的language,默认值为 language.

  

17.aggregate()

聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果

首先我们可以看到--->db.users.find()

  

接着使用聚合aggregate()--->db.users.aggregate([{$group:{_id:"$name",allSum:{$sum:1}}}])

【即:按照name列进行分组,就是"$name"表示,最外层的分组就是$group,然后再$sum进行统计,将统计的结果放在allSum列】

  

下面展示一些聚合表达式:

表达式 描述 实例
$sum 计算总和。 db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : "$likes"}}}])
$avg 计算平均值 db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$avg : "$likes"}}}])
$min 获取集合中所有文档对应值得最小值。 db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$min : "$likes"}}}])
$max 获取集合中所有文档对应值得最大值。 db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$max : "$likes"}}}])
$push 在结果文档中插入值到一个数组中。 db.mycol.aggregate([{$group : {_id : "$by_user", url : {$push: "$url"}}}])
$addToSet 在结果文档中插入值到一个数组中,但不创建副本。 db.mycol.aggregate([{$group : {_id : "$by_user", url : {$addToSet : "$url"}}}])
$first 根据资源文档的排序获取第一个文档数据。 db.mycol.aggregate([{$group : {_id : "$by_user", first_url : {$first : "$url"}}}])
$last 根据资源文档的排序获取最后一个文档数据 db.mycol.aggregate([{$group : {_id : "$by_user", last_url : {$last : "$url"}}}])

使用例如-->db.users.aggregate([{$group:{_id:"$name",avgAge:{$avg:"$age"}}}])

【根据name分组,则"$name",则$group,计算age的平均值,则avgAge:{$avg:"$age"}】

  

下面再介绍一下聚合框架中常用的几个操作:

  • $project:修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。
  • $match:用于过滤数据,只输出符合条件的文档。$match使用MongoDB的标准查询操作。
  • $limit:用来限制MongoDB聚合管道返回的文档数。
  • $skip:在聚合管道中跳过指定数量的文档,并返回余下的文档。
  • $unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。
  • $group:将集合中的文档分组,可用于统计结果。
  • $sort:将输入文档排序后输出。
  • $geoNear:输出接近某一地理位置的有序文档。

例如:$project的使用

首先-->db.users.find()

然后使用-->db.users.aggregate({$project:{_id:0,name:1,age:1}})

【仅查询name,age两列,_id设置为0则不查询】

再来看看-->db.users.aggregate([{$match:{"age":{$gt:22,$lt:25}}}])

【$match筛选     22<年龄<25】


 
 

【MongoDB】3.详细命令集合的更多相关文章

  1. MongoDB创建数据库和集合命令db.createCollection详解(转)

    切换/创建数据库 use yourDB;  当创建一个集合(table)的时候会自动创建当前数据库 完整的命令如下:db.createCollection(name, {capped: <Boo ...

  2. windows mongodb最常用命令简单归纳

    在windows安装好了windows,首先记得要把mongodb bin目录路径放在 系统环境变量的path中,确定之后即配置好了mongo的环境变量,在dos命令框中输入mongo会出现如下 版本 ...

  3. 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)

    今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...

  4. mongodb与mysql命令对比

    mongodb与mysql命令对比 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(col ...

  5. [整理]MongoDB 经常使用命令总结

    MongoDB 经常使用命令总结 简单的的增删改查数据 在查询结果中指定显示或者不显示某个字段 比如,我们希望在 lessons 集合中查找全部数据,可是不希望在返回结果中包括 slides 字段:由 ...

  6. MongoDB学习笔记-命令

    连接数据库: mongodb://账号:密码@IP/库名 更多方式参考:http://www.runoob.com/mongodb/mongodb-connections.html 命令整理: 名称 ...

  7. mongodb 常用的命令

    mongodb 常用的命令 对数据库的操作,以及登录 1 进入数据库 use admin 2 增加或修改密码 db.addUser('wsc', '123') 3查看用户列表 db.system.us ...

  8. Linux系统-解压缩命令集合

    Linux系统-解压缩命令集合 linux zip命令 zip -r myfile.zip ./* 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. ...

  9. MongoDB学习(操作集合中的文档)

    文档概念 文档的数据结构和JSON基本一样. 所有存储在集合中的数据都是BSON格式. BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON. 插入文档 insert()方法 ...

随机推荐

  1. Qt 子窗体嵌入父窗体

    1.创建个子窗体QDialog.在子窗体构造函数添加 Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { u ...

  2. [转] 理解 Thread.Sleep 函数

    原文链接:http://www.cnblogs.com/ILove/archive/2008/04/07/1140419.html 我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时 ...

  3. DB2环境设置

    作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.级别对应 • Environment variables at the operating system l ...

  4. 如何:使用PicturBox实现类似淘宝网站图片的局部放大功能

    转载至http://xuzhihong1987.blog.163.com/blog/static/267315872011822113131823/ 概要: 本文将讲述如何使用PictureBox控件 ...

  5. Hibernate单向一对多对象关系模型映射

    1 hibernate 的对象关系映射 Orm: 类-----表 属性------字段 对象------记录 表:在数据库中存在主外键的关系,反向工厂类是由表生成,在由表生成类的时候,类和类之间存在者 ...

  6. Does the OpenSceneGraph have a native file format?

    From OpenSceneGraph-3.0 onwards we have new native file formats based on generic serializers that ar ...

  7. ASP.NET Ajax 简单实例

    本实例讲解Ajax 调用WCF服务. 1.建立一个网站,并在其中添加一个WCF服务(这里需要选择Ajax-Enabled WCF Service). 2.IDE会自动生成一个SVC文件. 3.服务代码 ...

  8. [Android Pro] Android 官方推荐 : DialogFragment 创建对话框

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37815413 1. 概述 DialogFragment在android 3.0时 ...

  9. September 19th 2016 Week 39th Monday

    We come nearest to the great when we are great in humility. 我们最为谦逊的时候越接近伟大. When you are powerful en ...

  10. 【2016-08-21】Linux内核版本编号规则简介

    我们已经了解可以使用下面的几天命令来查看Linux内核版本及Ubuntu发行版本的信息: uname -r uname -a cat /proc/version lsb-release -a 等等 可 ...