mongdb语法
Docker 环境下MongoDB安装
docker run ‐di ‐‐name=tensquare_mongo ‐p 27017:27017 mongo ————————————在宿主机创建mongo容器
mongo 192.168.184.134 ------------------远程登陆
use spitdb ---------------------创建数据库spit
插入文档的语法格式
db.集合名称.insert(数据);
例如:
db.spit.insert({content:“我的天你好帅”,userid:“1011”,nickname:“小雅”,visits:NumberInt(902)}) ----------插入文档
查询集合的语法格式
db.spit.find() ----------------要查询spit集合的所有文档
db.spit.find({userid:‘1013’}) -----------------查询userid为1013的记录
db.spit.findOne({userid:‘1013’})--------------只需要返回符合条件的第一条数据
db.spit.find().limit(3) -----------------------返回指定条数的记录
模糊查询
MongoDB的模糊查询是通过正则表达式的方式实现的。格式为:/模糊查询字符串/
db.spit.find(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” : { KaTeX parse error: Expected 'EOF', got '}' at position 11: ne: value }̲}) ---------…gt: 1000}}) ---------------------------查询吐槽浏览量大于1000的记录
包含与不包含
包含使用$in操作符。
示例:查询吐槽集合中userid字段包含1013和1014的文档
db.spit.find({userid:{$in:[“1013”,“1014”]}})
不包含使用KaTeX parse error: Expected '}', got 'EOF' at end of input: ….find({userid:{nin:[“1013”,“1014”]}})
条件连接
需要查询同时满足两个以上条件,需要使用KaTeX parse error: Expected '}', got 'EOF' at end of input: … db.spit.find({and:[ {visits:{KaTeX parse error: Expected 'EOF', got '}' at position 9: gte:1000}̲} ,{visits:{lt:2000} }]})---------------查询吐槽集合中visits大于等于1000 并且小于2000的文档
如果两个以上条件之间是或者的关系,我们使用0r 操作符进行关联
db.spit.find({KaTeX parse error: Expected '}', got 'EOF' at end of input: …13"} ,{visits:{lt:2000} }]}) ---------查询吐槽集合中userid为1013,或者浏览量小于2000的文档记录
修改文档
db.集合名称.update(条件,修改后的数据)
想修改_id为1的记录,浏览量为1000,输入以下语句:
db.spit.update({id:“1”},{visits:NumberInt(1000)})
执行后,我们会发现,这条文档除了visits字段其它字段都不见了,为了解决这个问题,我们需要使用修改器KaTeX parse error: Expected '}', got 'EOF' at end of input: …date({id:"1"},{set:{visits:NumberInt(1000)}})
列值增长
如果我们想实现对某列值在原有值的基础上进行增加或减少,可以使用KaTeX parse error: Expected '}', got 'EOF' at end of input: …date({id:"1"},{inc:{visits:NumberInt(1)}})
删除文档
db.集合名称.remove(条件)
db.集合名称.remove({}) -----------------将数据全部删除
db.集合名称.remove({visits:NumberInt(1000)}) ----------------------删除visits=1000的记录
统计数
统计记录条件使用count()方法。
db.spit.count() ---------------------统计spit集合的记录数
db.spit.count({userid:“1013”}) ------------------------统计userid为1013的记录条数