1
比方說,我有以下的MongoDB文檔。哪個更快,MogoDB聚合還是自我實現「For」循環?
{
(...)
"services": {
"TCP80": {
"data": [{
"status": 1,
"delay": 3.87,
"ts": 1308056460
},{
"status": 1,
"delay": 2.83,
"ts": 1308058080
},{
"status": 1,
"delay": 5.77,
"ts": 1308060720
}]
}
}}
我要檢索的「數據」數組,其「TS」值大於「1308056460」更大的所有條目。因此,預期的結果是,
[
{
"status": 1,
"delay": 2.83,
"ts": 1308058080
},{
"status": 1,
"delay": 5.77,
"ts": 1308060720
}
]
一種方法可以使用MongoDB聚合函數。
db.test.aggregate(
{$match : {}},
{$unwind: "$services.TCP80.data"},
{$match: {"services.TCP80.data.ts": {$gte: 1308060720}}}
);
其他將檢索由中間層(一個的node.js應用程序)的整個數據陣列和運行一個循環以濾除我想要的值。
撇開實施簡單性,哪種方法會更有效率或產生更快的結果?爲什麼?
這實際上是相當主觀的,這裏的一般提示是「哪個最好」並不是真正的問題前提。現實傾向於指出,您的「數據庫」平臺「應該」比您的「應用程序」平臺具有更強的處理能力。更不用說,你在兩者之間傳輸不必要的數據。試圖在這裏決定是否真的有一個真正的問題。因爲如果你沒有「期待」數據庫去做,那麼爲什麼要使用數據庫呢? – 2014-09-25 11:03:42