跳到主要内容

文档(Document)相关语句

插入数据(Insert)

插入单条数据

db.students.insertOne({
name: "Spongebob",
age: 30,
gpa: 3.5
})

插入多条数据

db.students.insertMany([
{
name: "Patrick",
age: 38,
gpa: 3.0
},
{
name: "Sandy",
age: 27,
gpa: 3.8
}
])

集合不存在时会自动创建。

查询(Read)

查询所有文档

db.students.find()

美化输出

db.students.find().pretty()

查询一条文档

db.students.findOne()

筛选

返回指定字段

db.students.find(
{},
{
name: 1,
age: 1
}
)

排除 _id

db.students.find(
{},
{
name: 1,
age: 1,
_id: 0
}
)

条件查询

db.students.find({
name: "Spongebob"
})

排序

升序:

db.students.find().sort({
name: 1
})

降序:

db.students.find().sort({
name: -1
})

限制返回数量

db.students.find().limit(10)

跳过指定数量(分页)

db.students.find().skip(20)

结合 limit 可以实现分页查询:

db.students.find()
.skip(20)
.limit(10)

排序 + 分页

db.students.find()
.sort({ age: -1 })
.skip(20)
.limit(10)

数组查询

包含指定值

db.students.find({
hobbies: "game"
})

类似于:

WHERE hobbies CONTAINS 'game'

包含多个值

db.students.find({
hobbies: {
$all: ["game", "music"]
}
})

数组长度

db.students.find({
hobbies: {
$size: 3
}
})

更新(Update)

更新单条文档

db.students.updateOne(
{
name: "Spongebob"
},
{
$set: {
fullTime: true
}
}
)

更新多条文档

db.students.updateMany(
{},
{
$set: {
fullTime: false
}
}
)

更新不存在字段

db.students.updateMany(
{
fullTime: {
$exists: false
}
},
{
$set: {
fullTime: true
}
}
)

删除字段

db.students.updateOne(
{
name: "Spongebob"
},
{
$unset: {
fullTime: ""
}
}
)

自增字段

db.students.updateOne(
{
name: "Spongebob"
},
{
$inc: {
age: 1
}
}
)

删除(Delete)

删除一条文档

db.students.deleteOne({
name: "Patrick"
})

删除多条文档

db.students.deleteMany({
fullTime: false
})

删除全部文档

db.students.deleteMany({})

不删除集合,仅清空数据。