MongoDB之數據庫命令操作(二)
阿新 • • 發佈:2018-07-30
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之數據庫命令操作(二)