第三章 基本操作 v1.0
一、数据库操作
javascript
// 使用数据库(不存在则自动创建)
use mydb
// 查看当前数据库
db
// 查看所有数据库
show dbs
// 删除当前数据库
db.dropDatabase()二、集合操作
javascript
// 创建集合
db.createCollection("users")
// 查看当前数据库中的集合
show collections
// 重命名集合
db.users.renameCollection("accounts")
// 删除集合
db.users.drop()三、文档操作
1.插入文档
javascript
// 插入单个文档
db.users.insertOne({
name: "John",
age: 25,
email: "john@example.com"
})
// 插入多个文档
db.users.insertMany([
{ name: "Alice", age: 30 },
{ name: "Bob", age: 28 }
])2.查询文档
javascript
// 查询所有文档
db.users.find()
// 条件查询
db.users.find({ name: "John" })
// 格式化输出
db.users.find().pretty()
// 查询单个文档
db.users.findOne({ name: "John" })3.更新文档
javascript
// 更新单个文档
db.users.updateOne(
{ name: "John" },
{ $set: { age: 26 } }
)
// 更新多个文档
db.users.updateMany(
{ age: { $lt: 30 } },
{ $set: { status: "young" } }
)
// 替换整个文档
db.users.replaceOne(
{ name: "John" },
{ name: "John", age: 26, email: "john@new.com" }
)4.删除文档
javascript
// 删除单个文档
db.users.deleteOne({ name: "John" })
// 删除多个文档
db.users.deleteMany({ age: { $lt: 25 } })
// 删除所有文档
db.users.deleteMany({})四、比较运算符
| 运算符 | 说明 | 示例 |
|---|---|---|
| $eq | 等于 | { age: { $eq: 25 } } |
| $ne | 不等于 | { age: { $ne: 25 } } |
| $gt | 大于 | { age: { $gt: 20 } } |
| $gte | 大于等于 | { age: { $gte: 20 } } |
| $lt | 小于 | { age: { $lt: 30 } } |
| $lte | 小于等于 | { age: { $lte: 30 } } |
| $in | 在范围内 | { age: { $in: [20, 25, 30] } } |
| $nin | 不在范围内 | { age: { $nin: [20, 25] } } |
五、逻辑运算符
javascript
// $and:同时满足
db.users.find({ $and: [{ age: { $gt: 20 } }, { age: { $lt: 30 } }] })
// $or:满足其一
db.users.find({ $or: [{ name: "John" }, { name: "Alice" }] })
// $not:取反
db.users.find({ age: { $not: { $gt: 30 } } })
// $nor:都不满足
db.users.find({ $nor: [{ age: 20 }, { age: 30 }] })六、投影(Projection)
javascript
// 只返回指定字段(_id默认返回)
db.users.find({}, { name: 1, age: 1 })
// 排除指定字段
db.users.find({}, { email: 0 })
// 条件 + 投影
db.users.find({ age: { $gt: 20 } }, { name: 1, age: 1, _id: 0 })