docker 进入mongodb容器
docker exec -it mongo /bin/bash
创建并使用spitdb数据库
如果数据库不存在则自动创建
use spitdb
插入数据
db.集合名称.insert(数据); # 数据格式是BSON格式
db.spit.insert({content:"java是一门编程语言",userid:"1011",nickname:"万能的张三",visits:NumberInt(902)})
查看所有数据库
show databases
查看数据
这里的_id上面没有写,就是默认设置的
> db.spit.find()
{ "_id" : ObjectId("623f059b1ddabdb58bdf2130"), "content" : "java是第一编程语言", "userid" : "1011", "nickname" : "万能的张三", "visits" : 902 }
按条件查询
> db.spit.find({nickname:'万能的张三'})
{ "_id" : ObjectId("623f059b1ddabdb58bdf2130"), "content" : "java是第一编程语言", "userid" : "1011", "nickname" : "万能的张三", "visits" : 902 }
如果有多条记录返回,使用findOne命令只返回一条
db.spit.findOne({nickname:'万能的张三'})
返回指定条数的记录
db.spit.find().limit(3)
修改文档
db.集合名称.update(条件,修改后的数据)
db.spit.update({_id:"1"},{visits:NumberInt(1000)})
ps: 看结果, 这条文档除了visits字段其它字段都不见了
使用$set 修改指定字段 ,注意后面冒号:
db.spit.update({_id:"2"},{$set:{visits:NumberInt(2000)}})
删除文档
删除全部文档,慎用
db.集合名称.remove({})
删除指定条件数据
db.spit.remove({visits:1000})
统计总条数
db.spit.count()
统计指定条件的条数
db.spit.count({userid:"1013"})
模糊查询
根据content字段的模糊匹配bug 条件
> db.spit.find({content:/bug/})
{ "_id" : "1", "content" : "有个bug求解决", "userid" : "1012", "nickname" : "张三", "visits" : 2020 }
匹配content中第一个字开头是[太]的
db.spit.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
演示
查询访问量大于1000的
db.spit.find({visits:{$gt:1000}})
包含与不包含$in $nin
包含使用$in操作符, ,注意后面冒号:
- 查询吐槽集合中userid字段包含1013和1014的
db.spit.find({userid:{$in:["1013","1014"]}})
不包含使用$nin操作符。
- 查询吐槽集合中userid字段不包含1013和1014的文档
db.spit.find({userid:{$nin:["1013","1014"]}})
条件连接$and $or
查询吐槽集合中visits大于等于1000 并且小于2000的文档
db.spit.find({$and:[ {visits:{$gte:1000}} ,{visits:{$lt:2000} }]})
列值增长 $inc
如果我们想实现对某列值在原有值的基础上进行增加或减少,可以使用$inc运算符来实现
db.spit.update({_id:"2"},{$inc:{visits:NumberInt(1)}} )