MongoDB 速查表

创建
阅读 15579
use db

查询

db.getCollection("users").find(用于过滤记录的字典,用于限定字段的字典)

查找所有数据

db.getCollection("users").find()
// 或
db.getCollection("users").find({})

查询特定数据

查询单个字段条件

db.getCollection("users").find({ "age": 17 })

查询多个字段条件

db.getCollection("users").find({ "age": 17, "name": "张小三" })

查询范围值

// 查询 "age" 大于等于23且小于30 的用户
db.getCollection("users").find({ "age": { "$gte": 23, "$lt": 30 } })

限定返回哪些字段

db.getCollection("users").find({}, { "address": 0, "age": 0 })

0 表示在全部字段中剔除值为0的这些字段并返回,1 表示只返回值为1的这些字段

修饰返回结果

  • count() 返回满足要求的数据条数
  • limit() 限定返回结果条数
  • sort() 对查询结果进行排序
db.getCollection("users").find({}, { "age": 0 }).count()
db.getCollection("users").find({}, { "age": 0 }).limit(3)
db.getCollection("users").find({}, { "age": 0 }).sort(-1)

-1 表示倒序, 1 表示正序

增加

插入单条数据

db.getCollection("users").insertOne({
  "name": "张小三",
  "age": 17,
  address: "北京"
})

批量插入数据

db.getCollection("users").insertMany([
  { "name": "张小三", "age": 17, address: "北京" },
  { "name": "刘小四", "age": 23, address: "上海" },
  { "name": "王小五", "age": 25, address: "山东" },
  { "name": "马小六", "age": 22, address: "河南" }
])

修改

updateOne 更新第1条满足要求的数据

updateMany 更新所有满足要求的数据

updateMany 的第1个参数是一个字典,用来寻找所有需要被更新的记录;第二个参数是一个字典,它的Key为"$set",它的值为另一个字典,这个字典里面是需要被修改的字段名和新的值

db.getConllection("users").updateMany(
  {"name":"张小三"},
  {"$set":{"address":"苏州","work":"工程师"}}
)

删除

db.getConllection("users").deleteOne({"name":"张小三"})
db.getConllection("users").deleteMany({"name":"张小三"},{"name":"刘小四"})

数据去重

distinct 接收两个参数,第1个参数为字段名,表示对哪一个字段进行去重,第2个参数就是查询命令 find() 第1个参数,可以省略

age 字段去重

db.getConllection("users").distinct({"age"})

对满足特定条件的数据去重

db.getConllection("users").distinct("age",{"age":{"$gte":24}})

建立索引

建立唯一索引

db.users.ensureIndex({"email":1},{"unique":true})

建立稀疏索引(当值不为空时唯一)

db.users.ensureIndex({"email":1},{"unique":true, sparse:true})

本文链接 https://www.yidiankuaile.com/post/mongodb-cheat-sheet