简介
应用场景:
- 社交场景,存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人,、地点等功能。
- 游戏场景,存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式储存,方便查询、高效率存储和访问。
- 物流场景,存储订单信息,订单状态运送过程中会不断更新,以MongoDB内嵌数组的形式来储存,一次查询就能将订单所有的变更读取出来。
- 物联网场景,使用MongoDB存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些新进行多维度的分析。
- 视频直播,使用MongoDB存储用户信息、点赞互动信息等。
MongoDB数据操作方面的特点: - 数据量大
- 写入操作频繁(读写都很频繁)
- 价值较低的数据,对事务的要求不高
- 可用于数据模型无法确定,快速迭代开发
- 与2000-3000以上或更高的读写QPS
- 可用于需要TB称职PB级别的数据储存的应用
- 可用于需要大量的地理位置查询、文本查询的应用
- 可快速水平扩展
MongoDB是一个开源、高性能、无模式的文档型数据库,用于简化开发和方便扩展,是NoSQL数据产品的一种,是最像关系型数据库(MySQL)的非关系型数据库。它支持的数据结构非常松散,是一种类似于JSON的格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活。
windows下的下载启动
下载
https://www.mongodb.com/download-center/community
启动
方法一:在解压后的mongod的子目录下创建\data\db
在bin目录下打开cmd,或者直接打开cmd后切换到该目录,输入命令
mongod --dbpath=…\data\db
方法二:在解压目录中新建conf文件夹,该文件夹新建配置文件mongod.conf
配置:
storage:
#The directory where the mongod instance stores its data.Default Value is “data\db” on Windows.
dbPath: E:\linux\MongoDB\mongodb-win32-x86_64-windows-5.0.9\data\db
shell连接(数据库已经启动的前提下):
E:\linux\MongoDB\mongodb-win32-x86_64-windows-5.0.9\bin>mongo
或E:\linux\MongoDB\mongodb-win32-x86_64-windows-5.0.9\bin>mongo --host=localhost --port=27017
Linux下的安装启动
下载地址:
[https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.13.tgz]
将压缩包移入Linux系统后,打开终端,输入
tar -xvf mongodb-linux-x86_64-rhel70-4.4.13.tgz
解压(推荐将解压后的文件移入/usr/local下)。
相关配置:
- 建立相关目录存储
mkdir /mongodb/single/data #存储数据
mkdir /mongodb/single/log #存储日志
vi /mongodb/single/mongod.conf #配置文件
配置文件的具体内容:
systemLog: #MongoDB发送所有日志输入的目标指定为文件
destination: file
path:“/mongodb/single/log/mongod.log”
logAppend: true
storage:
dbpath: “/mongodb/single/data/”
journal:
enabled: true
processManagement:
fork: true
net:
bindIp: localhost,0.0.0.0
port: 27017
启动MongoDB:
/usr/local/mongodb/bin/mongod -f /mongodb/single/mongod.conf
查看启动状态:
ps -ef | grep mongo
退出MongoDB:
kill -2 PID," 或者 “kill -15 PID“
或者先切换到admin数据库下(use admin),然后输入“db.shutdownServer();“,exit退出MongoDB控制台
进入mongoDB的控制台:
./mongo
三个数据库
admin:这是“root”数据库,要是讲一个用户添加到这个数据库,这个用户自动继承所有数据库的权限,一些特定的服务器端命令也只能从这个数据库运行,如列出所有的数据库或者关闭服务器。
local:这个数据永远不会被复制,可以用来储存限于本地单台服务器的任意平台。
config:当mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
常用命令
user 数据库名 #创建数据库
db.dropDatabase() # 删除数据库
db.createCollection("集合名称") #创建集合
show collections #查询集合
db.集合.drop() # 删除集合
db.comment.insert({"articleid":"100000","content":"123456","userid":"1001","nickname":"Rose","createdatetime":new Date(),"likenum":NumberInt(10),"state":null}) #文档插入,隐式创建集合,数据除了我们插入的 内容 之外,还有一个 _id 字段,这是系统自动为我们添加的字段,我们也可以自己传入 _id,但是 _id 字段不能重复
db.collection.insertMany({{},{},{}}) #批量插入
db.comment.find({}) 或db.comment.find() #文档查询
db.sang.findOne(articleid:“100000”) #单条查询
#修改数据
db.comment.find({a:“b”}) #先查询
db.comment.find({“a:"c”}) #修改值
删除
db.comment.remove({a:"c"}) # 括号内参数不能为空