MongoDB 学习笔记
来源:互联网 发布:mac版office破解 编辑:程序博客网 时间:2024/05/29 10:55
MongoDB是由C++语言编写的,是一个基于分布式文件存储、介于关系型数据库和非关系型数据库之间的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB将数据存储为一个文档,数据结构由键值对组成。MongoDB文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组。
相关概念:
数据库
数据库是一个集合的物理容器。一个单一的MongoDB服务器通常具有多个数据库。
集合
集合是一组MongoDB的文档。它与关系型数据库中的表类似。集合存在于数据库中,无固定模式,即集合中的文档可以具有不同的字段。通常情况下,将具有相关类型和目的的文档存储在一个集合中。
文档
文档是一组键值对。它与关系型数据库中表的一行记录类似,不同的是文档具有动态模式。动态模式是指,存储在同一个集合中的文件不必具有相同的文档字段或结构,并且相同的字段在不同的文档中也可以存储不同类型的数据。
示例文档:
{ "_id" : { "$oid" : fa20fb3331b80929ecefe2b0 }, "title" : "蝶恋花", "content" : "笑渐不闻声渐悄,多情却被无情恼", "tags" : ["宋词","苏轼","蝶恋花"], "likes" : 100, "comments" : [ { "user" : "俞彦", "message" : "古人好词,即一字未易弹,亦未易改", "createdDate" : new Date(2011,1,20,2,15) }, { "user" : "俞陛云", "message" : "絮飞花落,每易伤春,此独作旷达语", "createdDate" : new Date(2011,1,25,7,45) } ]}
在关系型数据库中,上述文档需要设计3张表:articles,tags,comments。
在Windows上安装MongoDB:
从官网下载安装文件并安装,安装路径:D:\MongoDB\Server\3.4
在D:\MongoDB\Data路径下创建db目录,用于存放数据库文件
在D:\MongoDB\Data路径下创建log目录,用于存放日志文件
在D:\MongoDB\Data\log路径下创建mongo.log文件,用于输出日志
在D:\MongoDB\Server\3.4路径下创建mongo.conf文件,用于保存配置信息,配置信息如下:
# 数据库路径dbpath=D:\MongoDB\Data\db# 日志文件输出路径logpath=D:\MongoDB\Data\log\mongo.log# 是否启用日志文件,默认启用journal=true# 是否过滤无用的日志信息quiet=true# 错误日志采用追加模式logappend=true# 端口号port=27017
注册MongoDB服务
使用管理员身份打开命令行工具,进入D:\MongoDB\Server\3.4\bin目录下,输入如下命令:
mongod --config "D:\MongoDB\Server\3.4\mongo.conf" --install --serviceName "MongoDB"
启动MongoDB服务
使用管理员身份打开命令行工具,进入D:\MongoDB\Server\3.4\bin目录下,输入如下命令:
net start MongoDB
停止MongoDB服务
使用管理员身份打开命令行工具,进入D:\MongoDB\Server\3.4\bin目录下,输入如下命令:
net stop MongoDB
注销MongoDB服务
使用管理员身份打开命令行工具,进入D:\MongoDB\Server\3.4\bin目录下,输入如下命令:
mongod.exe --remove --serviceName "MongoDB"
常用操作:
启动MongoDB服务后,进入D:\MongoDB\Server\3.4\bin目录下,输入如下命令:
mongo
显示如下界面后即可开始进行数据库操作:
1.数据库常用操作:
查看数据库操作命令
db.help()
查看当前数据库
dbdb.getName()
查看数据库列表
show dbs
连接指定数据库,如果指定数据库不存在则创建一个新的数据库。新建的数据库并不会立即显示在数据库列表中,需要进行一些操作(例如:
db.createCollection("user")
)后才能创建成功。use <dbname>
删除当前数据库
db.dropDatabase()db.runCommand({"dropDatabase" : 1})
查看数据库中的集合列表
db.getCollectionNames()show collections
2.集合常用操作:
创建集合
db.createCollection(name, {size : ..., capped : ..., max : ...})
参数 类型 描述 name String 指定要创建的集合的名称 size 整型 (可选)指定上限集合的最大大小(以字节为单位)。如果capped为true,需指定此字段的值。 capped Boolean (可选)如果为true,则启用封闭的集合。上限集合是固定大小的集合,在达到其最大大小时自动覆盖其最旧的条目。如果指定为true,则还需指定size参数。 max 数字 (可选)指定上限集合中允许存在的最大文档数。
在MongoDB 中,不需要显式的创建集合。
当插入文档时,MongoDB 会自动创建集合。
删除集合
db.<collectionName>.drop()db.runCommand({"drop", "roles"})
3.文档常用操作:
创建文档
db.<collectionName>.insert(document)//3.2以上版本db.<collectionName>.insertOne(document)//3.2以上版本db.<collectionName>.insertMany([document], [document]...)db.<collectionName>.save(document)
在插入的文档中,如果不指定
_id
参数,MongoDB会为此文档分配一个唯一的ObjectId。_id
为12个字节长度的十六进制数。12字节划分如下:_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)
如果插入文档的
_id
已经存在,insert()
将不做操作并提示错误,save()
则会修改原来的内容为新内容。删除所有文档
db.<collectionName>.remove({})//3.2以上版本db.<collectionName>.deleteMany({})
从一个集合中删除所有文档,使用
drop()
方法删除整个集合,包括索引,然后重建该集合和索引或许会更高效。删除满足条件的所有文档
db.users.remove({"status" : "disabled"})db.users.deleteMany({"status" : "disabled"})
删除
users
集合中status
字段为disable
的所有文档。对于大量的删除操作,将要保留的文档复制到一个新的集合然后使用
db.<collectionName>.drop()
方法删除原集合或许会更高效。仅删除一个满足条件的文档
db.users.deleteOne({"status" : "disabled"})
使用
db.<collectionName>.remove()
方法并将<justOne>
参数设置为true
或1
.db.users.remove({"status" : "disabled"}, 1)db.users.remove({"status" : "disabled"}, true)
- mongodb 学习笔记一
- mongodb学习笔记
- MongoDB学习笔记
- MongoDB学习笔记
- MongoDB 学习笔记
- mongodb sharding 学习笔记
- MongoDB学习笔记
- mongoDB的学习笔记
- mongodb学习笔记
- [转]MongoDB学习笔记
- mongoDB学习笔记整理
- mongodb学习笔记一
- mongodb学习笔记
- mongodb学习笔记
- mongodb学习笔记
- MongoDB 学习笔记
- MongoDB 学习笔记
- MongoDB学习笔记《三》
- 算法训练 最大最小公倍数
- LeetCode||72. Edit Distance
- 工作常用知识点总结
- echarts生成的图表 自适应 不重新生成
- Python常用的标准库以及第三方库有哪些?
- MongoDB 学习笔记
- Android Gradle(3)— FlavorDimensions,构建变体
- HDU 2087 剪花布条
- winform中一些小操作
- Linux系统目录结构以及简单说明
- Nexus刷机教程
- sprinBooot注解
- Java学习,这些技巧不能少
- 指针函数完成交换两个数