我有一個包含書籍的資料庫。它有“作者”、“標題”、“年份”和“書型別”欄位。假設我想在我的網站上描述當前資料庫中的資料,例如書籍總數、不同作者的總數、每位作者的書籍總數等。
我應該在 Mongo 中進行幾個單獨的聚合還是可以將它們組合起來。現在我會做類似的事情
db.aggregate([
{
$group : {
_id : "$author",
details: {
$push : {
id:"$_id"
}
}
])
其次是
db.aggregate([
{
$group : {
_id : "$pubdate",
details: {
$push : {
id:"$_id"
}
}
])
等等等等有更聰明的解決方案嗎?
uj5u.com熱心網友回復:
您可以在單個$facet操作中組合不同的聚合,例如:
db.aggregate([ { $facet:
{
"authorCount": [
{
$group : {
_id : "$author",
details: {
$push : {
id:"$_id"
}
}
],
"pubDateCount": [
{
$group : {
_id : "$pubdate",
details: {
$push : {
id:"$_id"
}
} ]
}
}
])
說明:資料會被讀取一次并獨立發送到不同的 facet 階段,因此您不需要在多個聚合命令中執行此操作。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/490024.html
