在 Debian 上配置 MongoDB 索引,通常分为安装 MongoDB → 连接数据库 → 创建/管理索引几个步骤。下面给你一个实用、从零开始的说明。
以 Debian 11/12 为例(MongoDB 6.x / 7.x):
# 导入 MongoDB 公钥
curl -fsSL https://pgp.mongodb.com/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor
# 添加源
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] \
https://repo.mongodb.org/apt/debian $(lsb_release -cs)/mongodb-org/7.0 main" | \
sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
# 安装
sudo apt update
sudo apt install -y mongodb-org
# 启动
sudo systemctl enable --now mongod
mongo
# 或新版本
mongosh
选择数据库:
use testdb
db.users.createIndex({ username: 1 })
1 升序-1 降序db.orders.createIndex({ user_id: 1, created_at: -1 })
✅ 适合:
db.orders.find({ user_id: 123 }).sort({ created_at: -1 })
db.users.createIndex({ email: 1 }, { unique: true })
防止重复邮箱。
db.articles.createIndex({ title: "text", content: "text" })
查询:
db.articles.find({ $text: { $search: "mongodb" } })
db.logs.createIndex({ createdAt: 1 }, { expireAfterSeconds: 3600 })
1 小时后自动删除。
db.users.createIndex({ age: 1 }, { background: true })
db.users.getIndexes()
db.users.aggregate([{ $indexStats: {} }])
db.users.dropIndex("username_1")
✅ 使用 mongosh 而非旧 mongo
✅ 大表建索引用 background: true
✅ 避免过多索引(影响写入)
✅ 用 explain() 分析查询:
db.users.find({ username: "tom" }).explain("executionStats")
如果你愿意,可以告诉我:
我可以直接帮你设计最优索引方案。