MongoDB是一个开源的NoSQL文档数据库,具有高性能、高可用性和易扩展性等特点。它使用类似JSON的BSON格式存储数据,非常适合处理大量非结构化或半结构化数据。
brew tap mongodb/brew
brew install mongodb-community
brew services start mongodb-community
# 导入公钥
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 656408E390CFB1F5
# 创建源列表文件
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
# 更新软件包
sudo apt-get update
# 安装MongoDB
sudo apt-get install -y mongodb-org
# 启动MongoDB服务
sudo systemctl start mongod
mongo
// 显示所有数据库
show dbs
// 使用/创建数据库
use mydb
// 删除当前数据库
db.dropDatabase()
// 创建集合
db.createCollection("users")
// 显示所有集合
show collections
// 删除集合
db.users.drop()
// 插入单个文档
db.users.insertOne({
name: "John Doe",
age: 30,
email: "john@example.com",
hobbies: ["reading", "hiking"]
})
// 插入多个文档
db.users.insertMany([
{name: "Alice", age: 25, email: "alice@example.com"},
{name: "Bob", age: 35, email: "bob@example.com"}
])
// 查询所有文档
db.users.find()
// 条件查询
db.users.find({age: {$gt: 30}})
// 查询特定字段
db.users.find({}, {name: 1, email: 1})
// 查询单个文档
db.users.findOne({name: "John Doe"})
// 更新单个文档
db.users.updateOne(
{name: "John Doe"},
{$set: {age: 31}}
)
// 更新多个文档
db.users.updateMany(
{age: {$lt: 30}},
{$inc: {age: 1}}
)
// 替换文档
db.users.replaceOne(
{name: "Alice"},
{name: "Alice Smith", age: 26, city: "New York"}
)
// 删除单个文档
db.users.deleteOne({name: "Bob"})
// 删除多个文档
db.users.deleteMany({age: {$gt: 30}})
// 创建索引
db.users.createIndex({email: 1}, {unique: true})
// 查看索引
db.users.getIndexes()
// 删除索引
db.users.dropIndex("email_1")
// 统计文档数量
db.users.countDocuments()
// 排序查询
db.users.find().sort({age: -1})
// 限制返回数量
db.users.find().limit(5)
// 跳过文档
db.users.find().skip(10)
// 聚合操作
db.users.aggregate([
{$group: {_id: "$age", count: {$sum: 1}}}
])
通过本指南,您已经掌握了MongoDB的基本安装和操作。接下来可以深入学习更高级的功能如复制集、分片集群和聚合管道等。