find()
語法:db.collection.find(query, projection)
例項:
> db.tt1.find()
或使用pretty是文件格式化輸出(易讀)
> db.tt1.find().pretty()
各種查詢操作
1.小於 $lt
> db.tt1.find(},)
2.小於等於$lte
> db.tt1.find(},)
3.大於$gt
> db.tt1.find(},)
4.大於等於$gte
> db.tt1.find(},)
and與or使用方法
當前文件:
> db.tt1.find({},)
##beijing有三人
查詢文件內age為18並且addr為beijing的記錄
使用and方法
> db.tt1.find(,)
查詢文件內age為18或addr為北京的記錄
使用or方法
> db.tt1.find(,]},)
查詢文件內age大於18並且addr是beijing或tianjin
and,or聯合使用
> db.tt1.find(,$or:[,]},)
mongodb索引
索引通常能夠極大的提高查詢的效率,如果沒有索引,mongodb在讀取資料時必須掃瞄集合中的每個檔案並選取那些符合查詢條件的記錄。
語法:db.collection.createindex(keys, options)
key 值為你要建立的索引字段,1 為指定按公升序建立索引,如果你想按降序來建立索引指定為 -1 即可。
查詢語法:db.collection.getindex()
例項
> for (i=1;i<=100000;i++))} ##建立乙個資料量大的文件
> db.tt2.find().explain(true).executionstats.executiontimemillis
30 ##查詢時間為30ms
> db.tt2.createindex() ##建立索引
> db.tt2.find().explain(true).executionstats.executiontimemillis
1 ##查詢時間為1ms
引數:
1,background: 建索引過程會阻塞其它資料庫操作,background可指定以後臺方式創
建索引,即增加 「background」 可選引數。 「background」 預設值為
false。
2,unique:建立的索引是否唯一。指定為true建立唯一索引。預設值為false
3,name:索引的名稱。如果未指定,mongodb的通過連線索引的欄位名和排序
順序生成乙個索引名稱。
聚合
mongodb中聚合的方法使用aggregate()。
例項:當前文件:
> db.tt1.find({},)
統計addr的數量
> db.tt1.aggregate([}}])
以欄位addr分組,$sum統計總和
聚合管道
mongodb的聚合管道將mongodb文件在乙個管道處理完畢後將結果傳遞給下乙個管道處理。管道操作是可以重複的。
$project:修改輸入文件的結構。可以用來重新命名、增加或刪除域,也可以用於建立計算結果以及巢狀文件。
> db.tt1.aggregate(}) ##為0不輸出該欄位
為1則輸出
$match:用於過濾資料,只輸出符合條件的文件。$match使用mongodb的標準查詢操作。
查詢文件內addr為beijing的數量:
> db.tt1.aggregate([},}}])
$skip:在聚合管道中跳過指定數量的文件,並返回餘下的文件。
> db.tt1.aggregate(,}) ##跳過前三個文件
mongodb基本查詢命令,聚合查詢
參考 mongodb常用操作一查詢 查詢資料使用find db.ht patient information.find 相當於sql select from ht patient information 查詢條件放在 中,以key value的形式書寫 即 操作,key value 多個條件用逗號隔...
MongoDB 查詢索引
db.domainevents.getindexes db.集合名稱.createindex background 後台執行不增加鎖 db.domainevents.createindex sagacollection建立索引 db.sagacollection.createindex db.sag...
MongoDB多條件分組聚合查詢
需要統計某一日期下不同活動不同渠道的呼叫量 db.collectionname.aggregate activitycode channel total mongodb的聚合管道將mongodb文件在乙個管道處理完畢後將結果傳遞給下乙個管道處理 db.collection name.aggregat...