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();

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
7月前
|
存储 JSON NoSQL
3-MongoDB常用命令
MongoDB常用命令
167 2
|
NoSQL 数据可视化 关系型数据库
mongoDB入门教程三:数据库的创建和删除(增删改查)基本命令
mongoDB入门教程三:数据库的创建和删除(增删改查)基本命令
198 0
|
存储 JSON NoSQL
数据库系列课程(22)-MongoDB 常用命令
数据库系列课程(22)-MongoDB 常用命令
287 0
|
21天前
|
存储 JSON NoSQL
MongoDB常用命令
MongoDB常用命令
24 1
MongoDB常用命令
|
2月前
|
NoSQL MongoDB 数据库
MongoDB是一个NoSQL数据库,有着多种不同的命令和操作。以下是一些常见的MongoDB命令:
一些常用的MongoDB命令,如数据库和集合的管理、数据的插入、查询、更新、删除以及聚合操作等。
25 1
|
4月前
|
存储 JSON NoSQL
3-MongoDB常用命令
本文档介绍MongoDB中关于文章评论数据的操作命令。首先定义了一个名为`articledb`的数据库及评论数据结构,包括评论ID、文章ID、内容、用户ID、昵称、创建时间、点赞数、状态等字段。随后详细讲解了数据库与集合的创建、选择、删除等基础操作,并提供了具体示例。此外,还介绍了文档的增删改查等基本CRUD操作,包括单个文档和批量文档的插入、查询、更新和删除的方法及参数说明。文档进一步解释了如何进行投影查询、批量更新以及使用`$inc`运算符来增量更新数值字段。最后,讲解了如何进行分页查询和排序操作,帮助用户高效管理大量评论数据。
|
5月前
|
JSON NoSQL 关系型数据库
MongoDB常用命令大全,概述、备份恢复
MongoDB常用命令大全:服务启动停止、查看状态、备份;数据库相关,集合操作,文档操作,其他常用命令;数据备份恢复/导入导出——mongodump、mongorestore;MongoDB与SQL比较
|
5月前
|
JSON NoSQL MongoDB
mongodb 系统命令总结
mongodb 系统命令总结
37 0
|
5月前
|
存储 NoSQL 关系型数据库
MongoDB基本命令
MongoDB基本命令
61 0
|
7月前
|
NoSQL Linux Shell
Linux MongoDB重启命令
【5月更文挑战第8天】
477 6
下一篇
无影云桌面