MongoDB

(一)基本命令

  • 显示当前数据库服务器上的数据库

show dbs

  • 切换到指定数据库pagedb的,可以在此管理pagedb数据库以及其中的集合等

use pagedb

  • 显示数据库中的所有集合

show collections

  • 查看数据库服务器状态

db.serverStatus()

  • 查询指定数据库统计信息

db.status()

  • 创建数据 库 mydatabase

use mydatabase;(只是切换,不是创建)

  • 创建集合 student

db.createCollection("student",{capped:ture,size:1000,max:100})

  1. db.student.save({_id:1,classid:1,age:18,name:"little1",love:["football","swing","cmpgame"]})
  2. db.student.save({_id:2,classid:2,age:19,name:"little2",love:["play"]})
  3. db.student.save({_id:3,classid:2,age:20,name:"little3"})
  4. db.student.save({_id:4,classid:1,age:21,name:"little4"})
  5. db.student.save({_id:5,classid:1,age:22,name:"little5",opt:"woshisheia"})
  6. db.student.save({_id:6,classid:2,age:23,name:"23little4"})
  7. 或者
  8. db.student.insert([
  9. {_id:1,classid:1,age:18,name:"little1",love:["football","swing","cmpgame"]},
  10. {_id:2,classid:2,age:19,name:"little2",love:["play"]},
  11. {_id:3,classid:2,age:20,name:"little3"},
  12. {_id:4,classid:1,age:21,name:"little4"},
  13. {_id:5,classid:1,age:22,name:"little5",opt:"woshisheia"},
  14. {_id:6,classid:2,age:23,name:"23little4"},
  15. ])
  • 查询一条记录/多条记录(查询出name为little的数据)

db.student.find({name:"little1"})

  • 从第二条查寻,查出第三条

db.student.find().skip(1).limit(3)

  • 查询出19

db.student.find({age:{gt:19,lte:21}})

=""查询出age为奇数的数据(对2求余为1即为奇数)=""$mod=""

db.student.find({age:{$mod:[2,1]}})

="" 查询出存在opt字段的数据="" [exists](https://www.bookstack.cn/read/piaosanlang-mongodb/=%22%22%20docs.mongodb.com=%22%22%20manual=%22%22%20reference=%22%22%20operator=%22%22%20query=%22%22%20exists=%22%22 "exists")=""

db.student.find({opt:{$exists:true}})

="" 查询出不存在opt字段的数据=""

db.student.find({opt:{$exists:false}})

="" 查询出name不为little2的数据="" [ne](https://www.bookstack.cn/read/piaosanlang-mongodb/=%22%22%20docs.mongodb.com=%22%22%20manual=%22%22%20reference=%22%22%20operator=%22%22%20query=%22%22%20ne=%22%22 "ne")=""

db.student.find({name:{$ne:"little2"}})

="" 查询出age为16,18,19的数据="" [in](https://www.bookstack.cn/read/piaosanlang-mongodb/=%22%22%20docs.mongodb.com=%22%22%20manual=%22%22%20reference=%22%22%20operator=%22%22%20query=%22%22%20in=%22%22 "in")=""

db.student.find({age:{$in:[16,18,19]}})

="" 查询出age不为16,18,19的数据="" [nin](https://www.bookstack.cn/read/piaosanlang-mongodb/=%22%22%20docs.mongodb.com=%22%22%20manual=%22%22%20reference=%22%22%20operator=%22%22%20query=%22%22%20nin=%22%22 "nin")=""

db.student.find({age:{$nin:[16,18,19]}})

="" 查询出love有三个的数据="" $size=""

db.student.find({love:{$size:3}})

="" 查询出name不是以litt开头的数据="" [not](https://www.bookstack.cn/read/piaosanlang-mongodb/=%22%22%20docs.mongodb.com=%22%22%20manual=%22%22%20reference=%22%22%20operator=%22%22%20query=%22%22%20not=%22%22 "not")[regex](https://www.bookstack.cn/read/piaosanlang-mongodb/=%22%22%20docs.mongodb.com=%22%22%20manual=%22%22%20reference=%22%22%20operator=%22%22%20query=%22%22%20regex=%22%22 "regex")=""

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

(六)聚合
  • 计算各班级平均年龄
复制代码
  1. db.student.aggregate([
  2. {
  3. $group: {
  4. _id: "$classid",
  5. avg_age: {
  6. $avg: "$age"
  7. }
  8. }
  9. }
  10. ]
  11. )
  • 计算全班级平均年龄
复制代码
  1. db.student.aggregate([
  2. {
  3. $group: {
  4. _id: null,
  5. avg_age: {
  6. $sum: "$age"
  7. }
  8. }
  9. }
  10. ]
  11. )
(七) MapReduce
  • 计算各班级平均年龄

分组统计(MapReduce):

  1. var mapfun = function(){emit(this.classid,this.age);}
  2. var reducefun = function(key, values){
  3. var total=0;
  4. for(var i=0;i<values.length;i++){
  5. total += values[i];
  6. }
  7. return { classid: key, age_avg: total/values.length };
  8. }
  9. db.student.mapReduce(
  10. mapfun,
  11. reducefun,
  12. { out: "student_res" }
  13. )

查询统计结果(分班级统计人数)

db.student_res.find()

  • 各班级统计人数

分组统计(MapReduce):

复制代码
查询统计结果(分班级统计人数)
  1. var mapfun = function(){emit(this.classid,1);}
  2. var reducefun = function(key, values){
  3. return Array.sum(values);
  4. }
  5. db.student.mapReduce(
  6. mapfun,
  7. reducefun,
  8. { out: "student_sta" }
  9. )

db.student_sta.find();

相关推荐
毕设十刻17 小时前
基于vue的考研信息系统6kv17(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
龙茶清欢17 小时前
PostgreSQL 和 MySQL两个数据库的索引的区别
数据库·mysql·postgresql
望获linux17 小时前
论文解读:利用中断隔离技术的 Linux 亚微秒响应性能优化
java·linux·运维·前端·arm开发·数据库·性能优化
柱子jason18 小时前
使用IOT-Tree消息流InfluxDB模块节点实现标签数据的时序数据库存储
数据库·物联网·时序数据库·influxdb·iot-tree
TDengine (老段)18 小时前
TDengine 聚合函数 ELAPSED 用户手册
java·大数据·数据库·sql·物联网·时序数据库·tdengine
TDengine (老段)18 小时前
TDengine 聚合函数 HYPERLOGLOG 用户手册
大数据·数据库·物联网·哈希算法·时序数据库·iot·tdengine
Elastic 中国社区官方博客18 小时前
使用 Elasticsearch 构建 AI Agentic 工作流
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
kobe_OKOK_18 小时前
django 使用绑定多个数据库实现数据的同步
数据库·python·django
麦兜*19 小时前
Spring Boot 项目 Docker 化:从零到一的完整实战指南
数据库·spring boot·redis·后端·spring·缓存·docker
zl97989919 小时前
MySQL-数据库日志
数据库·mysql·database