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

MongoDB 基礎操作大全:資料庫/集合管理、CRUD、索引、查詢語法與腳本範例

     編輯:DB2 教學

Help 與基本導航

help                 # 指令說明
show dbs             # 列出資料庫
use <dbname>         # 切換/建立資料庫 (建立集合時才實際創建)
db.dropDatabase()    # 刪除當前資料庫
db.cloneDatabase("host")      # 從指定主機克隆
db.copyDatabase("from","to","host") # 複製資料庫
db.repairDatabase()  # 修復
db.getName() / db    # 顯示當前資料庫
db.stats()           # 狀態統計
db.version()         # 版本
db.getMongo()        # 連線位址

集合操作

db.createCollection("coll", {size:20, capped:5, max:100}) # 建立 (可設上限)
db.getCollection("account")                               # 取得集合物件
db.getCollectionNames()                                   # 所有集合名稱
db.printCollectionStats()                                 # 索引/儲存統計
db.coll.renameCollection("newName")                       # 重命名
db.coll.drop()                                            # 刪除集合

用戶管理

db.addUser("name")                          # 新增用戶
db.addUser("user","pwd", true)              # 新增唯讀用戶
db.auth("user","pwd")                       # 認證
show users                                  # 列出用戶
db.removeUser("user")                       # 刪除用戶

CRUD 與查詢語法

操作範例SQL 對應
查詢全部db.coll.find()SELECT * FROM coll
條件查詢db.coll.find({"age":22})WHERE age=22
比較運算{age:{$gt:22}}, {age:{$lt:22}}, {age:{$gte:25}}, {age:{$lte:25}}>, <, >=, <=
範圍{age:{$gte:23,$lte:26}}BETWEEN
模糊比對{name:/mongo/}, {name:/^mongo/}LIKE '%mongo%', LIKE 'mongo%'
投影欄位find({}, {name:1, age:1})SELECT name, age
排序find().sort({age:1}) / sort({age:-1})ORDER BY age ASC/DESC
AND 條件find({name:'zhangsan', age:22})WHERE name=... AND age=...
OR 條件find({$or:[{age:22},{age:25}]})WHERE age=22 OR age=25
限制筆數find().limit(5)TOP 5 / LIMIT 5
跳過筆數find().skip(10)OFFSET 10
分頁find().limit(10).skip(5)LIMIT 10 OFFSET 5
單筆findOne()TOP 1
統計find({age:{$gte:25}}).count()COUNT(*) WHERE...
去重distinct("name")SELECT DISTINCT name

索引操作

db.coll.ensureIndex({name:1})                    # 單欄
db.coll.ensureIndex({name:1, ts:-1})             # 複合
db.coll.getIndexes()                             # 列出索引
db.coll.totalIndexSize()                         # 索引總大小
db.coll.reIndex()                                # 重建索引
db.coll.dropIndex("name_1")                      # 刪除指定
db.coll.dropIndexes()                            # 刪除全部

資料異動

# 新增
db.coll.save({name:'zhangsan', age:25, sex:true})

# 修改
db.coll.update({age:25}, {$set:{name:'changeName'}}, false, true)  # multi=true
db.coll.update({name:'Lisi'}, {$inc:{age:50}}, false, true)
db.coll.update({name:'Lisi'}, {$inc:{age:50}, $set:{name:'hoho'}}, false, true)

# 刪除
db.coll.remove({age:132})

# 查詢修改/刪除 (原子)
db.coll.findAndModify({
  query: {age:{$gte:25}},
  sort: {age:-1},
  update: {$set:{name:'a2'}, $inc:{age:2}},
  remove: true
})

腳本與游標

# 迴圈新增
for (var i=0; i<30; i++) db.coll.save({name:"u_"+i, age:22+i, sex:i%2})

# 游標逐筆
var c = db.coll.find()
while (c.hasNext()) printjson(c.next())

# forEach
db.coll.find().forEach(printjson)

# 游標當陣列
var c = db.coll.find()
printjson(c[4])
for (var i=0, len=c.length(); i

參考連結

  • MongoDB 安裝配置
  • Mongodb 常用指令
  • mongodb 陣列查詢
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved