mongodb基本查詢命令,聚合查詢

2021-09-22 21:04:17 字數 3830 閱讀 3484

參考:mongodb常用操作一查詢

查詢資料使用find()

db.ht_patient_information.find();

相當於sql:select * from ht_patient_information

查詢條件放在{}中,以key:value的形式書寫(即=操作,key=value),多個條件用逗號隔開,相當於and

db.ht_patient_information.find();

相當於sql:select * from ht_patient_information where xb='2' and xm='高小雯'

「$lt」、「$lte」、「$gt」、「$gte」 就是所有的範圍比較操作符,分別對應、>=

db.ht_patient_information.find(});
db.ht_patient_information.find(});

相當於sql:select * from ht_patient_information where xb='2' and xm != '高小雯'

db.ht_patient_information.find(});

相當於sql: select * from ht_patient_information where xb in('1','2')

db.ht_patient_information.find(,]});

相當於sql:select * from ht_patient_information where xm='高小雯' or xb='1'

查詢數量使用count()

db.ht_patient_information.count()
參考:mongodb 聚合

mongodb中聚合(aggregate)主要用於處理資料(諸如統計平均值,求和等),並返回計算後的資料結果。

aggregate() 方法

mongodb中聚合的方法使用aggregate()。

基本語法

db.collection_name.aggregate(aggregate_operation)
參考:mongodb高階聚合查詢

先將常見的mongo的聚合操作和mysql的查詢做下模擬

管道在unix和linux中一般用於將當前命令的輸出結果作為下乙個命令的引數。

mongodb的聚合管道將mongodb文件在乙個管道處理完畢後將結果傳遞給下乙個管道處理。管道操作是可以重複的。

表示式:處理輸入文件並輸出。表示式是無狀態的,只能用於計算當前聚合管道的文件,不能處理其它的文件。

這裡我們介紹一下聚合框架中常用的幾個操作:

db.ht_patient_information.aggregate(

})

這樣返回的結果值"_id",xm,xb三個。預設情況_id是包含的,不包含可以設定_id:0

db.ht_patient_information.aggregate(

})

db.ht_patient_information.aggregate([

}},}

])返回結果

需要返回字段對應值

db.ht_patient_information.aggregate([

}},}}

])結果

} }} }

} }} }

去掉null結果

db.ht_patient_information.aggregate([

}},}},

}}])

統計分組後每組的數量 使用$sum 結果乘sum的值就是count的值,這裡用1來統計count

db.ht_patient_information.aggregate([

}},,"count":}},

}}])

結果, "count" : 1 }

, "count" : 6 }

, "count" : 2 }

, "count" : 1 }

, "count" : 22 }

, "count" : 3 }

, "count" : 137 }

在結果中顯示沒有參與分組的字段(jddm與jdmc一一對應)

db.ht_diagnose.aggregate([

}},,"jbmc":,"count":}},

,"jbmc":}},

},])

結果:, "jbmc" : "肝陰不足證", "count" : 603 }

, "jbmc" : "鼻竇息肉樣退行性變", "count" : 107 }

, "jbmc" : "卟啉症(紫質症)", "count" : 107 }

, "jbmc" : "澳洲立克次體性斑疹熱", "count" : 106 }

, "jbmc" : "ⅲ度曬斑", "count" : 106 }

, "jbmc" : "梅毒性心內膜炎", "count" : 106 }

, "jbmc" : "肝陽化風證", "count" : 97 }

, "jbmc" : "老年性白內障", "count" : 72 }

, "jbmc" : "意外損傷的晚期效應", "count" : 64 }

, "jbmc" : "感冒", "count" : 56 }

在oracle中類似於

select jbdm,max(jbmc) from ht_diagnose group by jbdm

可用limit,skip進行分頁操作 

排序:-1降序,1公升序

排序

db.ht_patient_information.aggregate([

}},,"count":}},

}},}

])結果:

, "count" : 1 }

, "count" : 1 }

, "count" : 2 }

, "count" : 3 }

, "count" : 6 }

, "count" : 22 }

, "count" : 137 }

限制返回條數

db.ht_patient_information.aggregate([

}},,"count":}},

}},},

])結果:

, "count" : 1 }

, "count" : 1 }

, "count" : 2 }

, "count" : 3 }

, "count" : 6 }

跳過指定條數

db.ht_patient_information.aggregate([

}},,"count":}},

}},},,])

結果:, "count" : 2 }

, "count" : 3 }

, "count" : 6 }

, "count" : 22 }

, "count" : 137 }

MongoDB查詢,索引,聚合的命令

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...

MongoDB多條件分組聚合查詢

需要統計某一日期下不同活動不同渠道的呼叫量 db.collectionname.aggregate activitycode channel total mongodb的聚合管道將mongodb文件在乙個管道處理完畢後將結果傳遞給下乙個管道處理 db.collection name.aggregat...

MongoDB 聚合 游標

今天跟大家分享一下mongodb中比較好玩的知識,主要包括 聚合,游標。一 聚合 常見的聚合操作跟sql server一樣,有 count,distinct,group,mapreduce。1 count count是最簡單,最容易,也是最常用的聚合工具,它的使用跟我們c 裡面的count使用簡直一...