主题
MongoDB 增删改查
插入
js
db.users.insertOne({
name: 'Tom',
email: 'tom@example.com',
age: 18,
createdAt: new Date(),
})js
db.users.insertMany([
{ name: 'Alice', email: 'alice@example.com', age: 20 },
{ name: 'Bob', email: 'bob@example.com', age: 22 },
])更新
js
db.users.updateOne(
{ email: 'tom@example.com' },
{
$set: { age: 19 },
$currentDate: { updatedAt: true },
},
)js
db.users.updateMany({ status: 'pending' }, { $set: { status: 'active' } })常用更新操作符:
$set:设置字段。$unset:删除字段。$inc:数字递增。$push:数组追加。$pull:数组移除匹配项。
删除
js
db.users.deleteOne({ email: 'tom@example.com' })
db.users.deleteMany({ status: 'inactive' })删除前先用同样条件 find() 确认范围。
查询
js
db.users.find()
db.users.findOne({ email: 'tom@example.com' })指定字段:
js
db.users.find({ age: { $gte: 18 } }, { name: 1, email: 1, _id: 0 })排序和分页:
js
db.users
.find({ age: { $gte: 18 } })
.sort({ createdAt: -1 })
.skip(0)
.limit(20)聚合
js
db.orders.aggregate([
{ $match: { status: 'paid' } },
{ $group: { _id: '$userId', totalAmount: { $sum: '$amount' } } },
{ $sort: { totalAmount: -1 } },
{ $limit: 10 },
])常用阶段:
$match:过滤。$project:选择或计算字段。$group:分组聚合。$sort:排序。$skip/$limit:分页。$lookup:关联集合。
