數據遷移
導出集合數據到 json 或 csv 文件
導入數據到集合
- 命令
mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f "field1,field2,...,fieldN"
- 參數
- -d 數據庫名
- -c 集合名
- --type 導入格式,默認 json
- -f 導入的字段名
- --headerline 導入csv時,使用第一行的標題作爲導入字段
- --file 導入的文件
備份數據庫
恢復數據庫
操作數據庫
- 默認數據庫 test
- 創建 use dbname
- 查看當前選擇的數據庫 db
- 查看數據庫列表 show dbs,不顯示空數據庫
- 刪除數據庫 use dbname; db.dropDatabase()
操作集合
創建
db.createCollection("集合名", {capped:false, autoIndexId:false, size:最大字節, max:文檔最多數量})
# 或者在插入文檔時自動創建
db.集合名.inert({})
刪除
db.集合名.drop()
操作文檔
insert
- 插入一個文檔
db.集合名.insert({})
# 或者
db.集合名.insertOne({})
- 插入多個文檔
db.集合名.insert([{},{},{},...,{}])
# 或者
db.集合名.insertMany([{},{},{},...,{}])
find
- 查詢匹配的文檔
db.集合名.find({}).pretty()
- 查詢,只返回一個文檔
db.集合名.findOne({})
- 相等 {"key":"value"}
- 小於 {"key":{$lt:"value"}}
- 小於等於 {"key":{$lte:"value"}}
- 大於 {"key":{$gt:"value"}}
- 大於等於 {"key":{$gte:"value"}}
- 不等於 {"key":{$ne:"value"}}
- and {$and:[{},{}]}
- or {$or:[{},{}]}
- 投影
db.集合名.find({},{"key1":1,"key2":0 ...})
- 限制返回文檔數量
db.集合名.find({}).limit(N)
- 跳過返回文檔數量
db.集合名.find({}).limit(N).skip(N)
- 排序,1升序,-1降序
db.集合名.find({}).sort({"key":1})
update
- 更新一個文檔
db.集合名.update({},{$set:{}})
- 更新多個文檔
db.集合名.update({},{$set:{},{multi:true}})
save
db.集合名.save({,...})
remove
- 刪除多條記錄
db.集合名.remove({})
- 刪除一條記錄
db.集合名.remove({},1)
- 刪除集合中的所有文檔,相當於 truncate
db.集合名.remove()
索引
聚合
db.集合名.aggregate([{}])
用戶
創建用戶
- 管理員權限
use admin
db.createUser(
{
user: "username",
pwd: "password",
roles: [{role: "root", db: "admin"}]
}
)
- 測試庫讀寫權限
use testdb
db.createUser(
{
user: "username",
pwd: "password",
roles: ["readWrite"]
}
)
驗證身份
db.auth("username", "password")
列出所有用戶
db.getUsers()
刪除數據庫用戶
use testdb
db.dropUser("username")
更改用戶密碼
db.updateuser(
"username",
{
pwd: "new_password"
}
)