安装步骤:
步骤一:
tar -xvf mongodb-linux-x86_64-4.0.10.tgz
步骤二:
mv mongodb-linux-x86_64-4.0.10 /usr/local/mongodb
步骤三:
数据存储目录:mkdir -p /mongodb/single/data/db
日志存储目录: mkdir -p /mongodb/single/log
步骤四:
修改配置文件:vi /mongodb/single/mongod.conf
systemLog
:
destination
:
file
#mongod
或
mongos
应向其发送所有诊断日志记录信息的日志文件的路径
path
:
"/mongodb/single/log/mongod.log"
#
当
mongos
或
mongod
实例重新启动时,
mongos
或
mongod
会将新条目附加到现有日志文件的末尾。
logAppend
:
true
storage
:
#mongod
实例存储其数据的目录。
storage.dbPath
设置仅适用于
mongod
。
dbPath
:
"/mongodb/single/data/db"
journal
:
#
启用或禁用持久性日志以确保数据文件保持有效和可恢复。
enabled
:
true
processManagement
:
#
启用在后台运行
mongos
或
mongod
进程的守护进程模式。
fork
:
true
net
:
#
服务实例绑定的
IP
,下面为自己虚拟机ip地址
bindIp
:
192.168.1.10
启动命令:
/usr/local/mongodb/bin/mongod -f /mongodb/single/mongod.conf
启动客户端命令:
进入到bin目录: ./mongo --host=192.168.1.10
基本命令介绍:
创建数据库: use article (创建完之后数据库只是在内存中,只有在创建了集合之后才可持久化到磁盘,并且通过 show dbs 查看)
切换数据库:use article
当前数据库查看: db
当前使用的表查看:db
当前磁盘数据库删除:db.
dropDatabase()
集合创建:db.createCollection('my')
展示集合: show collections
删除集合:db.集合名称.drop()
查询集合里的所有数据:db.集合名称.find()
清理界面:cls
按条件查询:db.集合名.find({条件:'值'}) 如: db.comment.find({userid:'1001'})
按条件查询只查一条:db.comment.findOne({userid;“1001”})
查询显示的字段只为部分字段:
db.comment.find({userid:'1002'},{userid:1,name:1})
查询所有的数据但是显示个别:
db.comment.find({},{userid:1,name:1})
按条件修改:
db.comment.update({userid:'1003'},{content:'我的家'}) // 修改的是content字段,但是其他的字段都被干掉了
db.comment.update({userid:'1003'},{$set:{content:'我的家'}}) // 仅修改满足条件的一条数据
db.comment.update({userid:'1003'},{$set:{content:'我的家'}},{multi:true}) // 满足条件的所有的数据都被修改
删除命令介绍:
db.集合名.remove({}) // 删除集合下的所有的数据,请慎重使用
db.
集合名称
.remove(
条件
) 如:
db.comment.remove({_id:'1'}) // 删除集合下 _id为1的值
分页查询:
查询某一个集合里有多少条数据: db.集合名.count() 如:db.comment.count()
带条件查询某一个集合下有多少条数据: db.集合名.count({条件}) 如: db.comment.count({_id:"1"},{state:"2"}); 或者
db.comment.count({_id:"1",state:"2"});
按页查询:
//
第一页
db.comment.find().skip(0).limit(2)
//
第二页
db.comment.find().skip(2).limit(2)
//
第三页
db.comment.find().skip(4).limit(2)
排序查询:
sort() 对数据进行排序查询,sort() 可以通过参数指定排序的字段,使用 1 和 -1 来进行排序, 1 升序 , -1 降序,
db.
集合名 称
.find().sort(
排序方式
)
如: 按_id降序排序:db.comment.find().sort({_id:-1});
当sort() 、skip()、limit() 同时使用时,sort() 优先,其次skip() , 最后是 limit()
模糊查询:
模糊查询是通过正则表达式查询的,正则表达式满足js正则表达式即可
语法: db.集合名称.find({字段:/正则表达式/});
如: 查询评论集合里面内容有“开水”的文档
db.comment.find({content:/开水/})
如: 查询评论集合里面内容以“专家” 开头的文档
db.comment.find({content:/^专家/});
比较查询:
<, <=, >, >=
这个操作符也是很常用的
db.
集合名称
.find({ "field" : { $gt: value }}) //
大于
: field > value
db.
集合名称
.find({ "field" : { $lt: value }}) //
小于
: field < value
db.
集合名称
.find({ "field" : { $gte: value }}) //
大于等于
: field >= value
db.
集合名称
.find({ "field" : { $lte: value }}) //
小于等于
: field <= value
db.
集合名称
.find({ "field" : { $ne: value }}) //
不等于
: field != value
如:查询评论集合点赞数量大于
700
的文档
db.comment.find({likenum:{$gt:700}});
包含查询:
包含使用$in操作符,如:
查询评论的集合中
userid
字段包含
1003
或
1004
的文档
db.comment.find({userid:{$in:["1003","1004"]}});
不包含使用$nin 操作符,如:查询评论集合中
userid
字段不包含
1003
和
1004
的文档
db.comment.find({userid:{$nin:["1003","1004"]}});
多个条件的查询,相当于 sql里面的and 和 or :
语法: $and :[{},{},{}....]
如:查询 _id 等于 2, 并且likenum 等于 888 的文档
db.comment.find({$and:[{_id:"2"},{likenum:NumberInt(888)}]});
如:查询 _id 等于 2 , 并且likenum 值大于 200 的文档
db.comment.find({$and:[{_id:"2"},{likenum:{$gte:200}}]});
语法: $or : [{},{},{}...]
如:查询_id 等于2 或者 点赞数小于1000 的文档记录
db.comment.find({$or:[{_id:"2"},{likenum:NumberInt(1000)}]});