首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

MongoDB 常用命令大全:增刪改查、索引、聚合、管理運維速查手冊

     編輯:DB2 教學

MongoDB 常用命令大全:增刪改查、索引、聚合、管理運維速查手冊

基礎增刪改查 (CRUD)

查詢投影:指定/排除字段

# 排除 slides 字段(巨大 Base64 圖片數組)
db.lessons.find({}, {slides: 0})

# 僅返回 name、contribs,排除 _id
db.bios.find({}, {name: 1, contribs: 1, _id: 0})

比較操作符

# 時間範圍 + 內容枚舉
db.wemessages.find({
  $and: [
    {CreateTime: {$gt: startTime}},
    {CreateTime: {$lt: endTime}},
    {Content: {$in: ['1','2','3','4','5']}}
  ]
})

更新操作

# $set 精確更新指定字段(推薦)
db.lessons.update({}, {$set: {'course_id': 'c.101'}})

# 多文檔更新
db.lessons.update({}, {$set: {'course_id': 'c.101'}}, {multi: true})
db.muusers.update({username: 'tom'}, {$set: {mobile: '6508639713'}}, {multi: true})

排序、分頁、格式化

# 排序:-1 降序,1 升序
db.muusers.find().sort({firsttime: -1})

# 美化輸出
db.lessons.find({lesson: 1}, {slides: 0}).pretty()

# 分頁
db.translation_memory.find({mp3voice: {$exists: false}}, null, {limit: 100})
# 生產環境推薦游標分頁:_id > last_id

條件查詢

# 字段不存在
db.questions.find({'sequence_id': 1, 'pngslide': {$exists: false}})
db.mycollection.find({"price": {$exists: false}})

集合級操作

# 重命名集合
db.quizzes.renameCollection('questions')

# 刪除字段
db.questions.update({}, {$unset: {quiz_name: 1}}, {multi: true})

# 重命名字段
db.students.update({_id: 1}, {$rename: {'nickname': 'alias', 'cell': 'mobile'}})

# 刪除集合所有數據
db.collection.remove({})

進階技巧

鏈式調用獲取字段長度

db.lessons.find({lesson: 1}).toArray()[0].slides.join('').length

聚合管道常用階段

db.orders.aggregate([
  {$match: {status: 'paid'}},
  {$group: {_id: '$user_id', total: {$sum: '$amount'}, count: {$sum: 1}}},
  {$sort: {total: -1}},
  {$limit: 10}
])

索引管理

# 創建單字段索引
db.users.createIndex({email: 1})

# 複合索引(順序關鍵,符合最左前綴)
db.orders.createIndex({user_id: 1, status: 1, create_time: -1})

# 文本索引
db.articles.createIndex({title: 'text', content: 'text'})

# TTL 索引(自動過期)
db.sessions.createIndex({expireAt: 1}, {expireAfterSeconds: 0})

# 查看/刪除索引
db.collection.getIndexes()
db.collection.dropIndex('email_1')

管理運維

# 查看當前操作
db.currentOp()

# 終止長耗時操作
db.killOp(opid)

# 數據庫統計
db.stats()

# 集合統計
db.collection.stats()

# 磁盤使用
db.runCommand({collStats: 'collection'})

# 備份/恢復
mongodump --db test --out /backup
mongorestore --db test /backup/test

避坑提醒

  • 保留字不能作集合名:group、system 等會報錯,改用其他名稱。
  • update 默認單文檔:MongoDB 3.2+ 默認 multi: false,批量更新必須顯式 {multi: true} 或用 updateMany()。
  • ObjectId 自動生成:_id 默認 ObjectId(含時間戳),可作為隱式創建時間排序依據。
  • 大小寫敏感:字段名、集合名、數據庫名均區分大小寫。

收藏此速查表,覆蓋 90% 日常 MongoDB 開發運維場景,持續更新中...

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved