Skip to content

第三章 基本操作 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 })