MongoDB数据库(一)

    技术2022-07-10  103

    学习资源网站: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} }]})
    Processed: 0.033, SQL: 9