MongoDB 是一款流行的开源文档数据库,以其灵活的模式、高可伸缩性和易用性而广泛应用于现代 Web 应用和大数据场景。
1.00¥ 原价为:1.00¥。0.00¥当前价格为:0.00¥。
MongoDB 是一款流行的开源文档数据库,属于 NoSQL (Not Only SQL) 数据库的范畴。它以其灵活的数据模型、高可伸缩性、高性能和易用性而广泛应用于现代 Web 应用、大数据处理、移动应用后端等场景。
主要特点:
核心功能:
本部分描述在 MongoDB 服务已经成功运行并可以访问的前提下,用户进行基本数据库操作的流程。
连接到 MongoDB 服务器: 使用 MongoDB 提供的命令行客户端 mongo
连接到服务器。默认情况下,它会连接到本地运行的 MongoDB 实例。
mongo
要连接到特定的主机和端口,可以使用 --host
和 --port
参数:
mongo --host <服务器地址> --port <端口号>
如果需要认证,可以使用 --username
和 --password
参数或在连接后使用 db.auth()
命令。
切换/创建数据库: 使用 use
命令切换到指定的数据库。如果该数据库不存在,在首次插入数据时会自动创建。
use mydatabase
插入文档: 使用 insertOne()
或 insertMany()
方法向集合 (Collection,相当于关系型数据库的表) 中插入一个或多个文档。
db.users.insertOne({ username: "john_doe", email: "john.doe@example.com", age: 30 })
db.products.insertMany([
{ name: "Laptop", price: 1200, quantity: 10 },
{ name: "Mouse", price: 25, quantity: 50 }
])
查询文档: 使用 find()
方法查询集合中的文档。可以传入查询条件文档来过滤结果。
db.users.find() // 查询 users 集合中的所有文档
db.users.find({ age: { $gt: 25 } }) // 查询 age 大于 25 的用户
db.products.find({ price: { $lt: 100 }, quantity: { $gt: 20 } }) // 查询价格小于 100 且数量大于 20 的产品
db.users.findOne({ username: "john_doe" }) // 查询第一个匹配的用户
更新文档: 使用 updateOne()
、updateMany()
或 replaceOne()
方法更新集合中的文档。需要指定查询条件和更新操作符 ($set
, $inc
, $push
等)。
db.users.updateOne({ username: "john_doe" }, { $set: { email: "john.new@example.com" } }) // 更新 john_doe 的邮箱
db.products.updateMany({ quantity: { $lt: 10 } }, { $inc: { quantity: 5 } }) // 将库存小于 10 的产品数量增加 5
db.users.replaceOne({ username: "jane_doe" }, { username: "jane", email: "jane@example.com", active: true }) // 替换 jane_doe 的文档
删除文档: 使用 deleteOne()
或 deleteMany()
方法删除集合中的文档。需要指定删除条件。
db.products.deleteOne({ name: "Mouse" }) // 删除第一个名为 "Mouse" 的产品
db.users.deleteMany({ age: { $gt: 60 } }) // 删除所有年龄大于 60 的用户
创建索引: 使用 createIndex()
方法在集合的字段上创建索引,以提高查询性能。
db.users.createIndex({ username: 1 }, { unique: true }) // 在 username 字段上创建唯一索引
db.products.createIndex({ name: "text" }) // 在 name 字段上创建文本索引
使用聚合管道: 使用 aggregate()
方法执行复杂的数据聚合操作。聚合管道由多个阶段组成,每个阶段对文档进行转换。
db.products.aggregate([
{ $group: { _id: null, totalValue: { $sum: { $multiply: [ "$price", "$quantity" ] } } } }
]) // 计算所有产品的总价值
关闭连接 (退出 mongo
客户端): 在 mongo
客户端中,可以使用 quit()
或 exit
命令退出。
quit()
假设我们已经连接到名为 mydatabase
的 MongoDB 数据库。
插入一些用户数据到 users
集合:
db.users.insertMany([
{ username: "alice", email: "alice@example.com", age: 25 },
{ username: "bob", email: "bob@example.com", age: 35 },
{ username: "charlie", email: "charlie@example.com", age: 25 }
])
查询所有年龄为 25 的用户:
db.users.find({ age: 25 })
预期输出 (类似):
[
{ "_id" : ObjectId("..."), "username" : "alice", "email" : "alice@example.com", "age" : 25 },
{ "_id" : ObjectId("..."), "username" : "charlie", "email" : "charlie@example.com", "age" : 25 }
]
将用户 “bob” 的年龄增加 1:
db.users.updateOne({ username: "bob" }, { $inc: { age: 1 } })
查询更新后 “bob” 的信息:
db.users.findOne({ username: "bob" })
预期输出 (类似):
{ "_id" : ObjectId("..."), "username" : "bob", "email" : "bob@example.com", "age" : 36 }
删除用户 “charlie”:
db.users.deleteOne({ username: "charlie" })
查询 users
集合中的所有用户,验证 “charlie” 是否已被删除:
db.users.find()
预期输出 (类似):
[
{ "_id" : ObjectId("..."), "username" : "alice", "email" : "alice@example.com", "age" : 25 },
{ "_id" : ObjectId("..."), "username" : "bob", "email" : "bob@example.com", "age" : 36 }
]