mongodb 基本指令

92 阅读3分钟

数据库操作

创建数据库

image.png

当前数据库内容为空,还存在内存中;若填充了值,则会加载到磁盘

查看数据库

image.png

查看当前数据库

image.png

删除数据库

image.png

集合操作

创建集合

image.png

删除集合

image.png

集合中添加文档

db.comment.insert({"articleid":"666","content":"今天天气真好"}) image.png

image.png

批量添加文档

db.comment.insertMany([{"articleid":"1","content":"这是第一个"},{"articleid":"2","content":"这是第二个"}]) image.png

image.png

异常捕捉处理

try {
  db.comment.insertMany([
    {"_id":"1","articleid":"100001","content":"我们不应该把清晨浪费在手机上, 健康很重要, 一杯温水幸福你我 他.","userid":"1002","nickname":"相忘于江湖","createdatetime":new Date("2019-0805T22: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-0806T11:01:02.521Z"),"likenum":NumberInt(3000),"state":"1"}

]);

} catch (e) {
  print (e);
}

image.png

查看文档

image.png

根据条件查找文档

db.comment.find({"articleid":"1"})

image.png

替换符合条件的文档

image.png

image.png

更新符合条件的文档

image.png

批量更新(默认只更新第一个)

db.comment.update({userid:"1003"},{$set:{nickname:"李四"}},{multi:true})

image.png

移除符合条件的文档

db.comment.remove({_id:"1"})

image.png

移除所有文档

db.comment.remove({})

image.png

更多查询

查看文档个数

db.comment.count()

image.png

统计符合条件的文档个数

db.comment.count({userid:"1003"})

image.png

条件查询

只显示前两条文档

db.comment.find().limit(2) image.png

查询文档偏移

db.comment.find().limit(2).skip(2) image.png

文档排序

db.comment.find({},{userid:1}).sort({userid:1})

image.png

文档倒排

db.comment.find({},{userid:1}).sort({userid:-1}) image.png

复合条件排序

db.comment.find({},{userid:1,likenum:1}).sort({userid:-1,likenum:1})

image.png

大于

db.comment.find({likenum:{$gt:NumberInt(700)}})

{ "_id" : "1", "articleid" : "100001", "content" : "我们不应该把清晨浪费在手机上, 健康很重要, 一杯温水幸福你我 他.", "userid" : "1002", "nickname" : "相忘于江湖", "createdatetime" : ISODate("1970-01-01T00:00:00Z"), "likenum" : 1000, "state" : "1" }
{ "_id" : "2", "articleid" : "100001", "content" : "我夏天空腹喝凉开水, 冬天喝温开水", "userid" : "1005", "nickname" : "伊人憔 悴", "createdatetime" : ISODate("2019-08-05T23:58:51.485Z"), "likenum" : 888, "state" : "1" }
{ "_id" : "4", "articleid" : "100001", "content" : "专家说不能空腹吃饭, 影响健康.", "userid" : "1003", "nickname" : "凯 撒", "createdatetime" : ISODate("2019-08-06T08:18:35.288Z"), "likenum" : 2000, "state" : "1" }
{ "_id" : "5", "articleid" : "100001", "content" : "研究表明, 刚烧开的水千万不能喝, 因为烫 嘴.", "userid" : "1003", "nickname" : "凯撒", "createdatetime" : ISODate("1970-01-01T00:00:00Z"), "likenum" : 3000, "state" : "1" }

image.png

in

db.comment.find({userid:{$in:["1003","1004"]}})

{ "_id" : "3", "articleid" : "100001", "content" : "我一直喝凉开水, 冬天夏天都喝.", "userid" : "1004", "nickname" : "杰克船 长", "createdatetime" : ISODate("2019-08-06T01:05:06.321Z"), "likenum" : 666, "state" : "1" }
{ "_id" : "4", "articleid" : "100001", "content" : "专家说不能空腹吃饭, 影响健康.", "userid" : "1003", "nickname" : "凯 撒", "createdatetime" : ISODate("2019-08-06T08:18:35.288Z"), "likenum" : 2000, "state" : "1" }
{ "_id" : "5", "articleid" : "100001", "content" : "研究表明, 刚烧开的水千万不能喝, 因为烫 嘴.", "userid" : "1003", "nickname" : "凯撒", "createdatetime" : ISODate("1970-01-01T00:00:00Z"), "likenum" : 3000, "state" : "1" }

小结

选择切换数据库:use articledb
插入数据:db.comment.insert({bson数据})
查询所有数据:db.comment.find();
条件查询数据:db.comment.find({条件})
查询符合条件的第一条记录:db.comment.findOne({条件})
查询符合条件的前几条记录:db.comment.find({条件}).limit(条数)
查询符合条件的跳过的记录:db.comment.find({条件}).skip(条数)

修改数据:db.comment.update({条件},{修改后的数据})
        或
        db.comment.update({条件},{$set:{要修改部分的字段:数据})

修改数据并自增某字段值:db.comment.update({条件},{$inc:{自增的字段:步进值}})

删除数据:db.comment.remove({条件})
统计查询:db.comment.count({条件})
模糊查询:db.comment.find({字段名:/正则表达式/})
条件比较运算:db.comment.find({字段名:{$gt:值}})
包含查询:db.comment.find({字段名:{$in:[值1, 值2]}})
        或
        db.comment.find({字段名:{$nin:[值1, 值2]}})

条件连接查询:db.comment.find({$and:[{条件1},{条件2}]})
           或
           db.comment.find({$or:[{条件1},{条件2}]})

参考地址

了解非关系型数据库 NoSQL - MongoDB | 安装使用以及 CRUD 操作 - Zhenye's Blog (zhenye-na.github.io)

MongoDB 数据库高级进阶 - 集群和安全 - Zhenye's Blog (zhenye-na.github.io)