MongoDB简单使用

Posted ZSYL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB简单使用相关的知识,希望对你有一定的参考价值。


学习目标

  1. 掌握 服务端的启动
  2. 掌握 客户端的使用
  3. 掌握 mongodb的数据库和集合命令
  4. 了解 文档中的_id字段

1. mongodb服务端的启动

  • 默认端口:27017
  • 默认配置文件的位置:/etc/mongod.conf
  • 默认日志的位置:/var/log/mongodb/mongod.log

mongodb服务端启动分别两种方式:

  • 本地测试方式的启动(只具有本地数据增删改查的功能)
  • 生产环境启动(具有完整的全部功能)

1.1 测试方式启动

  • 启动: sudo service mongod start (sudo service mongod start)
  • 停止: sudo service mongod stop
  • 重启: sudo service mongod restart

1.2 生产环境正式的启动方式

启动: sudo mongod [–auth --dbpath=dbpath --logpath=logpath --append --fork] [-–f logfile ]

  • 只以 sudo mongod 命令启动时,默认将数据存放在了 /data/db 目录下,需要手动创建
  • –dbpath: 指定数据库的存放路径
  • –logpath: 指定日志的存放路径
  • –append: 或–logappend 设置日志的写入形式为追加模式
  • –fork: 或-fork 开启新的进程运行mongodb服务
  • –f: 或-f 配置文件路径(可以将上述配置信息写入文件然后通过该文件中的参数进行加载启动)
  • –auth: 以权限认证的方式启动,我们会在后边的课程中学习该内容

1.3 查看是否启动成功

ps aux | grep mongod

2. 启动mongodb的客户端:进入mongo shell

  • 启动本地客户端: mongo
  • 查看帮助:mongo –help
  • 退出:exit或者ctrl+c

3. mongodb的简单使用

开启mongodb server的情况下,在进入mongo shell后,就可以做简单的使用了

3.1 mongodb数据库的命令

  • 查看当前的数据库:db(没有切换数据库的情况下默认使用test数据库)
  • 查看所有的数据库:show dbs /show databases
  • 切换数据库:use db_name
    • db_name为show dbs后返回的数据库名
  • 删除当前的数据库:db.dropDatabase()

3.2 mongodb集合的命令

  • 无需手动创建集合:
    向不存在的集合中第一次添加数据时,集合会自动被创建出来
  • 手动创建集合:
    • db.createCollection(name,options)
    • db.createCollection(“stu”)
    • db.createCollection(“sub”, { capped : true, size : 10 } )
    • 参数capped:默认值为false表示不设置上限,值为true表示设置上限
    • 参数size:集合所占用的字节数。 当capped值为true时,需要指定此参数,表示上限大小,当文档达到上限时, 会将之前的数据覆盖,单位为字节
  • 查看集合:show collections
  • 删除集合:db.集合名称.drop()
  • 检查集合是否设定上限: db.集合名.isCapped()

简单练习

在mongo shell中输入下列命令,查看结果

show dbs
use test
show collections
db
db.stu.insert({'name':'郭靖', 'age':22})
show dbs
show collections
db.stu.find()
db.stu.drop()
show collections
db.dropDatabase()
show dbs
exit

3.3 mongodb中常见的数据类型

3.3.1 常见类型

  • Object ID: 文档ID/数据的ID,数据的主键
  • String: 字符串,最常用,必须是有效的UTF-8
  • Boolean: 存储一个布尔值,true或false
  • Integer: 整数可以是32位或64位,这取决于服务器
  • Double: 浮点数
  • Arrays: 数组/列表
  • Object: mongodb中的一条数据/文档,即文档嵌套文档
  • Null: 存储null值
  • Timestamp: 时间戳,表示从1970-1-1到现在的总秒数
  • Date: 存储当前日期或时间的UNIX时间格式

3.3.2 注意点

  • 每个文档都有一个属性,为_id,保证每个文档的唯一性,mongodb默认使用_id作为主键

    • 可以手动设置_id的值,如果没有提供,那么MongoDB为每个文档提供了一个独特的_id, 类型为objectID
  • objectID是一个12字节的十六进制数,每个字节两位,一共是24位的字符串:

    • 前4个字节为当前时间戳
    • 接下来3个字节的机器ID
    • 接下来的2个字节中MongoDB的服务进程id
    • 最后3个字节是简单的增量值

4. 小结

  1. 服务端的启动
    • sudo mongod --dbpath=数据库路径
  2. 进入mongo shell客户端
    • mongo
  3. mongodb的数据库和集合命令
    • show dbs
    • use db_name
    • show collections
    • db
    • db.集合名.drop()
    • db.dropDatabase()
    • exit
  4. 了解文档中的_id字段

以上是关于MongoDB简单使用的主要内容,如果未能解决你的问题,请参考以下文章

mongodb关联查询

ios - Heroku 和 MongoDb 上的自定义解析服务器错误 3080:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项

创建自己的代码片段(CodeSnippet)

无法在 MongoDB(猫鼬)文档中追加数组

为啥这段代码会泄露? (简单的代码片段)

在 Spring MongoDB 的 ReplaceRoot 管道阶段使用 $mergeObjects