MongoDB CRUD 操作指南(类比 MySQL)
快速对比表
详细操作说明
1. 插入文档
// 插入单条文档(类比 INSERT INTO)
db.users.insertOne({
name: "Alice",
age: 25,
email: "alice@example.com",
tags: ["vip", "early-adopter"]
})
// 插入多条文档
db.users.insertMany([
{name: "Bob", age: 30},
{name: "Charlie", age: 35}
])2. 查询文档
基础查询
// 查询所有文档(SELECT * FROM users)
db.users.find()
// 条件查询(SELECT * FROM users WHERE age = 25)
db.users.find({ age: 25 })
// 比较操作符 $gt, $lt, $gte, $lte
db.users.find({ age: { $gt: 30 } }) // WHERE age > 30指定输出字段
// 只返回name和email字段(SELECT name, email FROM users)
db.users.find({}, { name: 1, email: 1, _id: 0 })排序
// 按age降序排序(ORDER BY age DESC)
db.users.find().sort({ age: -1 })分页
// 跳过前10条,取5条(LIMIT 5 OFFSET 10)
db.users.find().skip(10).limit(5)3. 更新文档
// 更新单个文档(UPDATE ... SET)
db.users.updateOne(
{ name: "Alice" },
{
$set: { age: 26 }, // 修改字段
$push: { tags: "2023" } // 数组追加元素
}
)
// 更新多个文档
db.users.updateMany(
{ age: { $lt: 30 } },
{ $set: { status: "young" } }
)
// 使用upsert(不存在时创建新文档)
db.users.updateOne(
{ name: "David" },
{ $set: { age: 40 } },
{ upsert: true }
)4. 删除文档
// 删除单个文档
db.users.deleteOne({ name: "Charlie" })
// 删除多个文档
db.users.deleteMany({ age: { $gt: 30 } })高级查询技巧
逻辑操作符
// AND 查询(WHERE age > 20 AND status = "active")
db.users.find({
$and: [
{ age: { $gt: 20 } },
{ status: "active" }
]
})
// OR 查询
db.users.find({
$or: [
{ age: { $lt: 18 } },
{ age: { $gt: 65 } }
]
})正则查询
// 模糊查询(LIKE '%son%')
db.users.find({ name: /son/i }) // i表示不区分大小写数组查询
// 查询包含特定元素的数组
db.users.find({ tags: "vip" }) // 数组包含"vip"
db.users.find({ tags: { $all: ["vip", "early-adopter"] } }) // 同时包含多个元素术语对比表
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Twopair
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果