`
千年松鼠
  • 浏览: 25839 次
文章分类
社区版块
存档分类
最新评论

MongoDB 命令备忘

阅读更多

启动mongo服务
mongod [--dbpath 数据库路径][--logpath 日志][--config 从配置文件启动][--auth 开启验证][--bind_ip 127.0.0.1 绑定ip(只能用本机连)]

创建用户
[use admin 创建管理员用户]
db.addUser("root","hellomongo")
[db.createUser({user:"root",pwd:"root",roles:["readWrite"]})]
    1. 数据库用户角色:read、readWrite;
    2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
    3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
    4. 备份恢复角色:backup、restore;
    5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

验证用户
db.auth("root","hellomongo")


登录mongo
mongo

列出数据库
show dbs

链接数据库(创建)
use dbname

删除所在数据库
db.dropDatabase()

创建名为collection1的集合
db.createCollection("collection1")

删除collection1
db.collection1.drop()

向collection1中插入文档{name:"xp"},若collection1不存在则创建collection1
db.collection1.insert({"name":"xp"})

列出所有collections
show collections

查看集合名为collection1的集合
db.collection1.find()
[.pretty()格式化]
[.limit(n)限制返回个数n]
[.sort({"age":-1})按age降序排序]


查询collection1中name=xp的文档
db.collection1.find({"name":"xp"})

查询collection1 但是解雇中不列出name属性
db.collection1.find({},{"name":0})

查询collection1中age值大于17的文档
db.collection1.find(
  { "age" :
    { $gt: 17}
  })

$gt:大于
$lt:小于
$gte:大于或等于
$lte:小于或等于

in查询 not in($nin)
db.collection1.find(
{
  name:{
        $in:["xp","tr"]
       }
})

查询collection1中 prefer值包含ball(可用正则表达式匹配)的文档,且忽略大小写
db.collection1.find({
  prefer:
    {
      $regex:"ball",
      $options:"i"
    }
})

查询collection1中所有prefer包含ball的文档
db.collection1.find({"prefer":/ball/})

查询collection1中prefer包含ball,并且gender=girl的文档
db.collection1.find({
  "prefer":/ball/,
  "gender":"girl"
})

查询collection1中name=lily或name=lucy的文档
db.collection1.find({
  $or:[
    {"name":"lily"},
    {"name":"lucy"}
  ]
})

查询collection1中文档个数 (可以用条件过滤)
db.collection1.count()

查询每个学校的人数,并按人数降序排序
db.message.aggregate(
[
  {$group:
    {
      _id:"$school",
      num:{$sum:1}
    }
  },
  {$sort:
    {
      num:-1
    }
  }
])

删除collection1中的文档 (可以用条件过滤)
db.collection1.remove()

向collection1中插入文档{name:"xp"},若collection1不存在则创建collection1
db.collection1.insert({"name":"xp"})

更新name=xiaoming的文档,使gender=male、prefer=basketball
db.collection1.update(
  {name:"xiaoming"},
  {$set:
    {
      gender:"male",
      prefer:"footBall"
    }
  })

替换现有的id=sfsfse35的文档
db.collection1.save({id:"sfsfse35",name:"nobody",home:"here"})

建索引
db.collection.ensureIndex({"name":1})

删索引
db.collection.dropIndex({"name":1})

查看索引
db.collection.getIndexes()



运维



备份(完全备份)
mongodump [-h serverhost] -d database(要备份的数据库) -o path(备份存放路径)

还原
mongorestore -d database(还原后的数据库名) [--drop 还原前删除原有collection] path(备份文件所在路径)

备份单个collection
mongoexport -d database -c collection(要备份的文档) -o file(备份到文件)

回复单个collection
mongoimport -d dbhost -c collectionname [–type (default: json (json,csv,tsv))] [–headerline(不导入第一行)] –file filename

给数据库加写入锁(备份前可已上锁)
db.runCommand({"fsync":1,"lock":1})

解锁
db.$cmd.sys.unlock.findOne()

查看当前锁状态
db.currentOp()

关闭服务
db.shutdownServer()

查看集合读写占用时间
mongotop

查看锁
db.serverStatus()

查看集合锁
db.collection.status()


聚合查询

表达式            描述                实例
$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 根据分组从源文档中获取的第一个文档。通常情况下,这才有意义,连同以前的一些应用 “$sort”-stage. db.mycol.aggregate([{$group : {_id : "$by_user", first_url : {$first : "$url"}}}])
$last 根据分组从源文档中获取最后的文档。通常,这才有意义,连同以前的一些应用 “$sort”-stage. db.mycol.aggregate([{$group : {_id : "$by_user", last_url : {$last : "$url"}}}])


分享到:
评论

相关推荐

    MongoDB命令备忘

    这篇备忘将概述一些常用且重要的MongoDB命令。 1. 数据库操作: - `use <database>`:切换到指定的数据库。 - `db`:查看当前所处的数据库。 - `show dbs`:列出所有已创建的数据库。 - `db.dropDatabase()`:...

    java中mongodb使用环境详细配置

    Java 中 MongoDB 使用环境详细配置是指在 Windows 平台(WinXP)上安装、运行、安装 Windows 服务的笔记,以作备忘。下面是一些重要的知识点: 1. MongoDB 的下载和安装 MongoDB 提供了多种操作系统的版本,包括 ...

    使用Flask实现Todo备忘录项目的所有代码

    在本项目中,我们将探讨如何使用Python的Flask框架与MongoDB数据库来构建一个简易的Todo备忘录应用。这个应用允许用户进行添加、更新和删除待办事项的操作,是学习Web开发的一个基础且实用的例子。 **Flask框架介绍...

    TP_SIR_mongodb

    Mongod 命令备忘录: show dbs:列出数据库的名称 使用数据库名称:允许您“进入”数据库 show collections:允许您列出 databasename 的集合 db.nomdelacollection.find():允许你列出集合的所有数据示例:db....

    备忘单:各种主题备忘单的集合

    3. **数据库管理**:SQL查询语句、数据库设计模式以及常见的数据库管理系统(如MySQL、MongoDB)的操作。 4. **操作系统**:Linux或Windows命令行快捷操作、系统管理技巧。 5. **版本控制**:Git的基本命令和工作流...

    cheat-sheets:我们的备忘单一套

    3. **数据库**:SQL基础和高级查询技巧,如SELECT语句、JOIN操作、索引优化等,也可能涵盖NoSQL数据库如MongoDB、Redis的常用命令。 4. **版本控制系统**:Git的常用命令,如clone、commit、push、pull、branch、...

    Mongo_CheatSheet:Mongo Shell备忘单和快速入门指南

    本备忘单和快速入门指南将帮助你更好地理解和使用MongoDB。 **一、MongoDB基本概念** 1. **数据库(Database)**:MongoDB中的数据存储在数据库中,每个数据库都有一个唯一的名称。 2. **集合(Collection)**:...

    Programming-cheat-sheets:您很快就能在这里找到各种编程备忘单!

    6. **版本控制系统**:Git是目前最常用的版本控制工具,备忘单会提供常用命令,如clone、add、commit、push和pull等。 7. **数据结构与算法**:栈、队列、链表、树、图、排序和搜索算法等,这些都是编程面试和日常...

    cheat_sheets:看起来很有帮助的命令。 向上

    向上”暗示了这个压缩包可能包含了各种命令行工具的备忘单,这些工具可能是用于操作系统交互、编程语言、数据处理或其他IT领域的常用命令。 描述中的“看起来很有帮助的命令。 向上”进一步强调了这些备忘单的实用...

    awesome-cheatsheets-cn::fire::fire::fire:专为国人开发者打造的备忘单-操作系统,数据库,编程语言,框架和开发工具等速查表。通过一个文件快速掌握或查找您所需的关键知识。项目上榜靠你了,觉得不错点个Star吧!:rocket::rocket:

    这里可能包括MySQL、PostgreSQL、MongoDB、Oracle等数据库的速查表。这些速查单通常包含SQL查询语法、数据库设计原则、性能优化技巧等关键信息。对于开发者而言,掌握数据库操作和优化能力是提升项目性能的关键。 ...

    Java 面试必,会直通BAT,TMD大厂

    3. **设计模式**:包括单例、工厂、观察者、装饰者、适配器、策略、代理、模板方法、建造者、命令、状态、享元、访问者、桥接、组合、迭代器、备忘录、解释器等23种经典设计模式。 4. **并发编程**:讲解Java多线程...

    【白雪红叶】JAVA学习技术栈梳理思维导图.xmind

    mongodb strom spark java语言 语言语法基础 异常 泛型 内部类 反射 序列化 nIo 匿名类 包装类 优先级 引用 语言工具类库 容器类 集合 链表 map 工具类 系统类 日期类 数字类 字符串+正则 ...

    java程序员面试之九阴真经.rar

    3. 行为型模式:观察者、模板方法、策略、职责链、命令、解释器、迭代器、备忘录、状态、访问者等。 五、数据结构与算法 1. 基本数据结构:数组、链表、栈、队列、堆、树、图等。 2. 排序算法:冒泡排序、插入排序...

    java面试题库

    - 行为型模式:责任链、命令、解释器、迭代器、访问者、备忘录、状态、策略、模板方法、观察者模式等。 6. **框架**: - Spring框架:IoC容器、AOP、MVC、Spring Boot、Spring Cloud等。 - MyBatis:SQL映射、...

    java就业面试宝典

    3. 行为型模式:掌握命令、责任链、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者等模式。 十、框架与中间件 1. Spring框架:理解依赖注入,掌握AOP和IoC的概念。 2. MyBatis:熟悉SQL...

    architect-awesome-java:《后端架构师技术图谱》java实现

    - **行为型模式**:策略、模板方法、观察者、迭代器、职责链、访问者、命令、状态、备忘录。 5. **Spring框架**: - **IoC(控制反转)**:Bean的生命周期、依赖注入、AOP。 - **Spring MVC**:模型-视图-控制器...

Global site tag (gtag.js) - Google Analytics