MongoDB命令汇总

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 这篇文章提供了一个MongoDB命令的汇总,包括数据库操作、DDL和DML命令、安全管理、数据备份恢复、远程连接管理和聚合操作等。

一. MongoDB命令帮助系统

看每个命令的详细用法,可以使用:db.listCommands()

数据库操作更详细的帮助命令:db.help()

对指定数据库的集合进行操作、管理和监控:db.mycoll.help()

二. 基本命令及实例

(一)基本命令

显示当前数据库服务器上的数据库:show dbs

切换到指定数据库pagedb的:use pagedb

显示数据库中所有的集合:show collectionsshow tables

查看数据库服务器的状态:db.serverStatus()

查询指定数据库统计信息:db.stats()

(二)常用DDL和DML

了解 DML、DDL、DCL、DQL专业名称

SQL语言共分为四大类:数据操纵语言DML,数据定义语言DDL,数据控制语言DCL,数据查询语言DQL。

DML(data manipulation language 数据操纵语言): 它们是UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言

DDL(data definition language 数据(库)定义语言): 主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用

DCL(Data Control Language 数据控制语言): 是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL

DQL(Data Query Language 数据查询语言):是数据库控制功能,包括 select 语句

创建数据库 mydatabase: use mydatabase; (只是切换,不是创建)

创建集合 student
db.createCollection("student",{capped:true,size:1000,max:100})

试一下,max等于3或者size等于1,会怎么样?

插入更新记录

表(student)

 {
   _id:1,classid:1,age:18,name:"little1",love:["football","swing","cmpgame"]}
 {
   _id:2,classid:2,age:19,name:"little2",love:["play"]}
 {
   _id:3,classid:2,age:20,name:"little3"}
 {
   _id:4,classid:1,age:21,name:"little4"}
 {
   _id:5,classid:1,age:22,name:"little5",opt:"woshisheia"}
 {
   _id:6,classid:2,age:23,name:"23little4"}

插入

 db.student.save({
   _id:1,classid:1,age:18,name:"little1",love:["football","swing","cmpgame"]})
 db.student.save({
   _id:2,classid:2,age:19,name:"little2",love:["play"]})
 db.student.save({
   _id:3,classid:2,age:20,name:"little3"})
 db.student.save({
   _id:4,classid:1,age:21,name:"little4"})
 db.student.save({
   _id:5,classid:1,age:22,name:"little5",opt:"woshisheia"})
 db.student.save({
   _id:6,classid:2,age:23,name:"23little4"})

或者

db.student.insert([
 {
   _id:1,classid:1,age:18,name:"little1",love:["football","swing","cmpgame"]},
 {
   _id:2,classid:2,age:19,name:"little2",love:["play"]},
 {
   _id:3,classid:2,age:20,name:"little3"},
 {
   _id:4,classid:1,age:21,name:"little4"},
 {
   _id:5,classid:1,age:22,name:"little5",opt:"woshisheia"},
 {
   _id:6,classid:2,age:23,name:"23little4"},
 ])

总结:集合一旦启动封顶模式,当max或者是size超出,新数据覆盖旧数据

查询一条记录/多条记录

查询出name为little1的数据: db.student.find({name:"little1"})

从第二条查寻,查出三条: db.student.find().skip(1).limit(3)

查询大于19小于等于21:db.student.find({age:{$gt:19,$lte:21}})

查询出age为奇数的数据(对2求余为1即为奇数):db.student.find({age:{$mod:[2,1]}})

查询出存在opt字段的数据:db.student.find({opt:{$exists:true}})

查询出不存在opt字段的数据:db.student.find({opt:{$exists:false}})

查询出name不为little2的数据:db.student.find({name:{$ne:"little2"}})

查询出age为16,18,19的数据:db.student.find({age:{$in:[16,18,19]}})

查询出age不为16,18,19的数据:db.student.find({age:{$nin:[16,18,19]}})

查询出love有三个的数据:db.student.find({love:{$size:3}})

查询出name不是以litt开头的数据:db.student.find({name:{$not:/^litt.*/}})

查询age=“”>20的数据:db.student.find({age:{$gt:20}})

按age升序:db.student.find().sort({age:1})

按age降序:db.student.find().sort({age:-1})

查询数据条数:db.student.find().count()

删除记录

删除age为20的数据:db.student.remove({age:20});

创建索引

创建索引 age:db.student.ensureIndex({"age":1})

查询索引:db.student.getIndexes()

删除索引:db.student.dropIndex({"age" : 1})

统计集合记录数:db.student.count()

删除集合 student:db.student.drop()

删除数据库 mydatabase:db.dropDatabase()

(三)安全管理

以安全认证模式启动

添加用户

安全认证

(四)数据备份、恢复与迁移管理

备份全部数据库

备份指定数据库

备份一个数据库中的某个集合

恢复全部数据库

恢复某个数据库的数据

恢复某个数据库的某个集合的数据

向MongoDB导入数据

从MongoDB导出数据

(五)远程连接管理

基于mongo实现远程连接
mongo —host 192.168.17.129 —port 27017

(六)聚合
计算各班级平均年龄

db.student.aggregate([
 {
   
    $group: {
   
      _id: "$classid",
      avg_age: {
   
        $avg: "$age"
      }
    }
  }
])

计算全班级平均年龄

db.student.aggregate([
 {
   
    $group: {
   
      _id: null,
      avg_age: {
   
        $sum: "$age"
      }
    }
  }
])
(七) MapReduce

计算各班级平均年龄

分组统计(MapReduce):

var mapfun = function(){
   emit(this.classid,this.age);}
var reducefun = function(key, values){
   
    var total=0; 
    for(var i=0;i<values.length;i++){
   
        total += values[i];
    }
    return {
    classid: key, age_avg: total/values.length };
}
db.student.mapReduce(
      mapfun,
      reducefun,
      {
    out: "student_res" }
)

查询统计结果(分班级统计人数):db.student_res.find()

各班级统计人数
分组统计(MapReduce):

var mapfun = function(){
   emit(this.classid,1);}
var reducefun = function(key, values){
   
     return Array.sum(values);
}
db.student.mapReduce(
      mapfun,
      reducefun,
      {
    out: "student_sta" }
)

查询统计结果(分班级统计人数):db.student_sta.find();

相关文章
|
9月前
|
NoSQL MongoDB 微服务
微服务——MongoDB常用命令——文档的分页查询
本文介绍了文档分页查询的相关内容,包括统计查询、分页列表查询和排序查询。统计查询使用 `count()` 方法获取记录总数或按条件统计;分页查询通过 `limit()` 和 `skip()` 方法实现,控制返回和跳过的数据量;排序查询利用 `sort()` 方法,按指定字段升序(1)或降序(-1)排列。同时提示,`skip()`、`limit()` 和 `sort()` 的执行顺序与编写顺序无关,优先级为 `sort()` &gt; `skip()` &gt; `limit()`。
320 1
|
9月前
|
JSON NoSQL MongoDB
微服务——MongoDB常用命令——文档基本CRUD
本文介绍了MongoDB中文档的基本操作,包括插入、查询、更新和删除。单个文档插入使用`insert()`或`save()`方法,批量插入用`insertMany()`。查询所有文档用`find()`,条件查询可在`find()`中添加参数,投影查询控制返回字段。更新文档通过`update()`实现,支持覆盖修改、局部修改(使用`$set`)和批量修改。列值增长可用`$inc`实现。删除文档用`remove()`,需谨慎操作以免误删数据。此外,文档键值对有序,区分大小写,不能有重复键。
193 1
|
9月前
|
存储 NoSQL MongoDB
微服务——MongoDB常用命令——MongoDB索引知识概述
本文介绍MongoDB索引相关知识,包括其在查询中的重要作用。索引可避免全集合扫描,显著提升查询效率,尤其在处理海量数据时。通过B树数据结构存储字段值并排序,支持相等匹配、范围查询及排序操作。文中还提供了官方文档链接以供深入学习。
147 0
|
9月前
|
存储 NoSQL MongoDB
微服务——MongoDB常用命令——MongoDB索引的类型
本节介绍了MongoDB中索引的几种类型及其特点。包括单字段索引,支持升序/降序排序,索引顺序对操作无影响;复合索引,字段顺序重要,可实现多级排序;地理空间索引,支持平面与球面几何查询;文本索引,用于字符串搜索并存储词根;哈希索引,基于字段值散列,适合等值匹配但不支持范围查询。
216 1
微服务——MongoDB常用命令——MongoDB索引的类型
|
9月前
|
存储 JSON NoSQL
MongoDB常用命令
本文介绍了将文章评论数据存储到MongoDB中的操作方法,包括数据库和集合的基本操作。主要内容涵盖:选择与创建数据库(如`articledb`)、数据库删除、集合的显式与隐式创建及删除、文档的CRUD操作(插入、查询、更新、删除)。此外,还详细说明了分页查询、排序查询以及统计查询的方法,例如使用`limit()`、`skip()`实现分页,`sort()`进行排序,`count()`统计记录数。通过实例展示了如何高效管理MongoDB中的数据。
|
9月前
|
NoSQL 关系型数据库 MongoDB
微服务——MongoDB常用命令——集合操作
本节主要介绍MongoDB中的集合操作,包括显式与隐式创建集合的方法。显式创建使用`db.createCollection(name)`,需遵循命名规范(如不能以&quot;system.&quot;开头或包含`\0`字符)。隐式创建则通过直接向不存在的集合插入文档实现,更为常用。此外,还介绍了集合删除方法`db.collection.drop()`及其返回值规则,帮助用户管理数据库中的集合资源。
323 0
|
9月前
|
存储 NoSQL MongoDB
微服务——MongoDB常用命令1——数据库操作
本节介绍了 MongoDB 中数据库的选择、创建与删除操作。使用 `use 数据库名称` 可选择或创建数据库,若数据库不存在则自动创建。通过 `show dbs` 或 `show databases` 查看所有可访问的数据库,用 `db` 命令查看当前数据库。注意,集合仅在插入数据后才会真正创建。数据库命名需遵循 UTF-8 格式,避免特殊字符,长度不超过 64 字节,且部分名称如 `admin`、`local` 和 `config` 为系统保留。删除数据库可通过 `db.dropDatabase()` 实现,主要用于移除已持久化的数据库。
590 0
|
存储 JSON NoSQL
MongoDB常用命令
MongoDB常用命令
109 1
MongoDB常用命令
|
NoSQL MongoDB 数据库
MongoDB是一个NoSQL数据库,有着多种不同的命令和操作。以下是一些常见的MongoDB命令:
一些常用的MongoDB命令,如数据库和集合的管理、数据的插入、查询、更新、删除以及聚合操作等。
177 1
|
存储 JSON NoSQL
3-MongoDB常用命令
本文档介绍MongoDB中关于文章评论数据的操作命令。首先定义了一个名为`articledb`的数据库及评论数据结构,包括评论ID、文章ID、内容、用户ID、昵称、创建时间、点赞数、状态等字段。随后详细讲解了数据库与集合的创建、选择、删除等基础操作,并提供了具体示例。此外,还介绍了文档的增删改查等基本CRUD操作,包括单个文档和批量文档的插入、查询、更新和删除的方法及参数说明。文档进一步解释了如何进行投影查询、批量更新以及使用`$inc`运算符来增量更新数值字段。最后,讲解了如何进行分页查询和排序操作,帮助用户高效管理大量评论数据。

推荐镜像

更多