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

相关推荐
TDengine (老段)4 分钟前
TDengine 时间函数 TODAY() 用户手册
大数据·数据库·物联网·oracle·时序数据库·tdengine·涛思数据
码界奇点13 分钟前
KingbaseES一体化架构与多层防护体系如何保障企业级数据库的持续稳定与弹性扩展
数据库·架构·可用性测试
悟乙己36 分钟前
数据科学家如何更好地展示自己的能力
大数据·数据库·数据科学家
皆过客,揽星河1 小时前
mysql进阶语法(视图)
数据库·sql·mysql·mysql基础语法·mysql进阶语法·视图创建修改删除
tuokuac2 小时前
Redis 的相关文件作用
数据库·redis·缓存
鹧鸪云光伏与储能软件开发3 小时前
投资储能项目能赚多少钱?小程序帮你测算
运维·数据库·小程序·光伏·光伏设计软件·光伏设计
2301_779503764 小时前
MySQL主从同步--主从复制进阶
数据库·mysql
beijingliushao4 小时前
58-正则表达式
数据库·python·mysql·正则表达式
诗句藏于尽头5 小时前
DJANGO后端服务启动报错及解决
数据库·笔记·django
手握风云-5 小时前
MySQL数据库精研之旅第十五期:索引的 “潜规则”(下)
数据库