1. 程式人生 > >MongoDB之數據庫命令操作(二)

MongoDB之數據庫命令操作(二)

HERE 命令 .get weight 一個 大於 比較 可選值 聚合

現在詳細學習一下mongodb的數據庫操作。

查詢語句

db.xxx(集合name).find() # 查詢
db.xxx(集合name).findOne() # 只返回一個
db.xxx(集合name).findOne().pretty() # 返回結果格式化

# 比較運算符
等於,默認是等於判斷,沒有運算符,如:db.xxx(集合name).find({name:"xiao"})
小於$lt,如:db.xxx(集合name).find({age:{$lt:30}})
小於或等於$lte,如:db.xxx(集合name).find({age:{$lte:30}})
大於$gt,如:db.xxx(集合name).find({age:{$gt:30}})
大於或等於$gte,如:db.xxx(集合name).find({age:{$gte:30}})
不等於$ne,如:db.xxx(集合name).find({age:{$ne:30}})

# 邏輯運算符,即多條件查詢
db.xxx(集合name).find({age:{$ne:30}, name:"xiaoming"}) # 默認邏輯與
db.xxx(集合name).find({$or:[{age:{$ne:30}, name:"xiaoming"}]}) # 默認邏輯或

# 範圍查詢
db.xxx(集合name).find({age:{$in:[18,30]}}) # 在某個範圍
db.xxx(集合name).find({age:{$nin:[18,30]}}) # 不在某個範圍

# 正則$regex
db.xxx(集合name).find({name:{$regex:"^x"}})

# 函數查詢$where,使用this代表本集合
db.xxx(集合name).find({$where:function(){return this.age < 10}})

# 限制返回數量
db.xxx(集合name).find().limit(3)
# 查詢偏移
db.xxx(集合name).find().skip(3) # 從第4條開始返回

# 循環
for(i=0;i<15;i++){db.xxx(集合name).insert({_id:i*2})}

# 查詢返回一些字段,需要返回設置1,不需要設置0
db.xxx(集合name).find({},{name:1,age:0})

# 排序sort(),1位升序,-1為降序
db.xxx(集合name).find().sort({name:-1})
# 返回個數count()
db.xxx(集合name).count({name:"xiaoming"})
# 去重
db.xxx(集合name).distinct("name",{})

聚合函數

  • 語法:db.集合名稱.aggregate({管道:{表達式}})
# 管道
$group:將集合中的文檔分組,可用於統計結果
$match:過濾數據,只輸出符合條件的文檔
$project:修改輸入文檔的結構,如重命名、增加、刪除字段、創建計算結果
$sort:將輸入文檔排序後輸出
$limit:限制聚合管道返回的文檔數
$skip:跳過指定數量的文檔,並返回余下的文檔
$unwind:將數組類型的字段進行拆分

# 表達式
$sum:計算總和,$sum:1同count表示計數
$avg:計算平均值
$min:獲取最小值
$max:獲取最大值
$push:在結果文檔中插入值到一個數組中
$first:根據資源文檔的排序獲取第一個文檔數據
$last:根據資源文檔的排序獲取最後一個文檔數據

索引

  • 1表示升序,-1表示降序

  • 語法結構:db.COLLECTION_NAME.ensureIndex(keys[,options])

keys,要建立索引的參數列表。如:{KEY:1},其中key表示字段名,1表示升序排序,也可使用使用數字-1降序。
options,可選參數,表示建立索引的設置。可選值如下:

background,Boolean,在後臺建立索引,以便建立索引時不阻止其他數據庫活動。默認值 false。
unique,Boolean,創建唯一索引。默認值 false。
name,String,指定索引的名稱。如果未指定,MongoDB會生成一個索引字段的名稱和排序順序串聯。
dropDups,Boolean,創建唯一索引時,如果出現重復刪除後續出現的相同索引,只保留第一個。
sparse,Boolean,對文檔中不存在的字段數據不啟用索引。默認值是 false。
v,index version,索引的版本號。
weights,document,索引權重值,數值在 1 到 99,999 之間,表示該索引相對於其他索引字段的得分權重。
# 創建普通索引
db.集合.ensureIndex({屬性:1})

# 創建唯一索引,實現唯一約束的功能
db.集合.ensureIndex({"name":1},{"unique":true})

# 創建聯合索引
db.集合.ensureIndex({name:1,age:1})

#查看集合所有索引
db.集合.getIndexes()

# 刪除索引
db.集合.dropIndex(‘索引名稱‘)
db.集合.dropIndexs() # 刪除集合所有的索引

MongoDB之數據庫命令操作(二)