docker 进入mongodb容器

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)}}  )
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐