【NOSQL】MongoDB

MongoDB简介

  • MongoDB是一个开源、高性能、无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种。是最
    像关系型数据库(MySQL)的非关系型数据库。
  • 它支持的数据结构非常松散,是一种类似于 JSON 的 格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活。
  • MongoDB中的记录是一个文档,它是一个由字段和值对(field:value)组成的数据结构。MongoDB文档类似于JSON对象,即一个文档认为就是一个对象。字段的数据类型是字符型,它的值除了使用基本的一些类型外,还可以包括其他文档、普通数组和文档数组。

体系结构

在这里插入图片描述

Linux系统中的安装启动和连接

目标:在Linux中部署一个单机的MongoDB,作为生产环境下使用。
步骤如下:

(1)先到官网下载压缩包——>解压——>重命名

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-6.0.8.tgz
tar -zxvf mongodb-linux-x86_64-rhel70-6.0.8.tgz
mv mongodb-linux-x86_64-rhel70-6.0.8 mongodb

从soft文件夹移动到usr/local下

mv /soft/mongodb /usr/local/

在这里插入图片描述

新建几个目录,分别用来存储数据和日志:

#数据存储目录
mkdir -p /usr/local/mongodb/data/db
#日志存储目录
mkdir -p /usr/local/mongodb/single/log

新建并修改配置文件

vi /mongodb/single/mongod.conf

配置文件的内容如下:

systemLog:
	#MongoDB发送所有日志输出的目标指定为文件
	# #The path of the log file to which mongod or mongos should send all diagnostic logging information
	destination: file
	#mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
	path: "/usr/local/mongodb/log/mongod.log"
	#当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
	logAppend: true
storage:
	#mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
	##The directory where the mongod instance stores its data.Default Value is "/data/db".
	dbPath: "/usr/local/mongodb/data/db"
	journal:
	#启用或禁用持久性日志以确保数据文件保持有效和可恢复。
	enabled: true
processManagement:
	#启用在后台运行mongos或mongod进程的守护进程模式。
	fork: true
net:
	#服务实例绑定的IP,默认是localhost
	bindIp: localhost,192.168.0.2
	#bindIp
	#绑定的端口,默认是27017
	port: 27017

启动MongoDB服务

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongod.conf

在这里插入图片描述

官网下载MongoDB Compass

在这里插入图片描述
在这里插入图片描述

db.flyComment.insertMany([
{"_id":"1","articleid":"100001","content":"我们不应该把清晨浪费在手机上,健康很重要,一杯温水幸福你我他。","userid":"1002","nickname":"相忘于江湖","createdatetime":new Date("2019-08-05T22:08:15.522Z"),"likenum":NumberInt(1000),"state":"1"}
,{"_id":"2","articleid":"100001","content":"我夏天空腹喝凉开水,冬天喝温开水","userid":"1005","nickname":"伊人憔悴","createdatetime":new Date("2019-08-05T23:58:51.485Z"),"likenum":NumberInt(888),"state":"1"}
,{"_id":"3","articleid":"100001","content":"我一直喝凉开水,冬天夏天都喝。","userid":"1004","nickname":"杰克船长","createdatetime":new Date("2019-08-06T01:05:06.321Z"),"likenum":NumberInt(666),"state":"1"},
{"_id":"4","articleid":"100001","content":"专家说不能空腹吃饭,影响健康。","userid":"1003","nickname":"凯撒","createdatetime":new Date("2019-08-06T08:18:35.288Z"),"likenum":NumberInt(2000),"state":"1"},
{"_id":"5","articleid":"100001","content":"研究表明,刚烧开的水千万不能喝,因为烫嘴。","userid":"1003","nickname":"凯撒","createdatetime":new Date("2019-08-06T11:01:02.521Z"),"likenum":NumberInt(3000),"state":"1"}]);
db.flyComment.find({articleid:'100001'})
db.flyComment.find({articleid:'100001'},{articleid:1,nickname:1})
db.flyComment.updateOne({_id:"1"},{$set:{likenum:NumberInt(1002)}})
db.flyComment.updateMany({_id:"1"},{$set:{articleid:'10002',likenum:NumberInt(1014)}})
db.flyComment.findOneAndDelete({_id:'1'})

在这里插入图片描述

db.flyComment.find().limit(2)
db.flyComment.find().limit(2).skip(2)
db.flyComment.find({},{userid:1}).sort({userid:1})
db.flyComment.find({},{userid:1}).sort({userid:-1})
#模糊查询
db.flyComment.find({content:/开水/})
# 大于1000
db.flyComment.find({likenum:{$gt:NumberInt(1000)}})
#in
db.flyComment.find({userid:{$in:['1003','1004']}})
# not in
db.flyComment.find({userid:{$nin:['1003','1004']}})
#and
db.flyComment.find({$and:[{likenum:{$gte:NumberInt(700)}},{likenum:{$lt:NumberInt(2000)}}]})
#or
db.flyComment.find({$or:[ {userid:"1003"} ,{likenum:{$lt:1000} }]})
#count
db.flyComment.countDocuments({likenum:{$lt:1000}})

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值