学习资源网站:https://www.bilibili.com/video/BV1bJ411x7mq?from=search&seid=8073803961154704106
本篇博客主要是在学习完mongodb数据库后的一些总结和反思,用于日后快速回顾
一、启动MongoDB服务器
在bin目录下打开命令提示符,输入指令
mongod --dbpath=..\data\db
二、常用的操作指令
登录 mongo
查看已有的数据库 show databases
退出 exit
创建集合 db.createCollection("集合名")
查看当前库中表 show collections
集合的删除 db.集合.drop()
注:当向一个集合中插入一个文档的时候,如果集合不存在,则会自动创建集合。
三、集合操作指令
1、单个文档插入
db.comment.insert(
{
"articleid":"100000",
"content":"今天天气真好,阳光明媚",
"userid":"1001",
"nickname":"Rose",
"createdatetime":newDate(),
"likenum":NumberInt(10),
"state":null
}
)
2、多个文档插入
db.comment.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"}
]);
3、文档的基本查询
查询所有 db.comment.find()
按一定条件 db.comment.find({userid:'1003'}) //查询userid为1003的所有记录
db.comment.findOne({userid:'1003'})//查询userid为1003的第一条记录
查询某些记录的部分信息 db.comment.find({userid:"1003"},{userid:1,nickname:1})
不显示_id db.comment.find({userid:"1003"},{userid:1,nickname:1,_id:0})
查询所有的部分信息 db.comment.find({},{userid:1,nickname:1,_id:0})
4、文档的更新
覆盖的修改 db.comment.update({_id:"1"},{likenum:NumberInt(1001)})
局部的修改 db.comment.update({_id:"2"},{$set:{likenum:NumberInt(889)}})
批量修改 db.comment.update({userid:"1003"},{$set:{nickname:"刘明勇"}})//只修改第一条数据
db.comment.update({userid:"1003"},{$set:{nickname:"刘明勇1"}},{multi:true})
列增长的修改 db.comment.update({_id:"3"},{$inc:{likenum:NumberInt(1)}})
5、统计查询
统计所有记录数 db.comment.count()
按条件统计 db.comment.count({userid:"1003"})
6、分页列表查询
db.comment.find().skip(0).limit(2)
注:
1、存储的文档会分页,例如每页两条记录,需要要查询第二页内容需用该语句
2、skip(), limilt(), sort()三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit(),和命令编写顺序无关。
3、在sort()方法中1为升序、-1为降序
7、排序查询
db.comment.find().sort({userid:-1,likenum:1})
8、模糊查询
db.comment.find({content:/开水/}) //查询评论内容中包含'开书'的所有文档
9、比较查询
db.comment.find({likenum:{$gt:NumberInt(700)}})
注:
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
10、包含查询
//查询评论的集合中userid字段包含1003或1004的文档
db.comment.find({userid:{$in:["1003","1004"]}})
//查询评论的集合中userid字段不包含1003或1004的文档
db.comment.find({userid:{$nin:["1003","1004"]}})
11、条件连接查询
//查询评论集合中likenum大于等于700 并且小于2000的文档:
db.comment.find({$and:[{likenum:{$gte:NumberInt(700)}},{likenum:{$lt:NumberInt(2000)}}]})
//查询评论集合中userid为1003,或者点赞数小于1000的文档记录
db.comment.find({$or:[ {userid:"1003"} ,{likenum:{$lt:1000} }]})