2014-01-09 64 views
0

我是pymongo的新手,嘗試了幾個不同的東西。我想問的一個問題是:如何對幾百萬條記錄進行聚合?Pymongo中的聚合體

每個文檔以下類型的字典:

{'_id': [id], 'date_of_addition': [unix_time_stamp], etc.} 

我想在上面一個是每個日期有多少記錄被加入到聚合?

任何暗示,想法,謝謝。

+0

從這裏開始:http://api.mongodb.org/python/current/api/pymongo/collection.html#pymongo.collection。 Collection.aggregate – JohnnyHK

回答

1

在pyMongo的shell中,聚合框架的工作原理完全相同,完全沒有任何區別。你只需要知道在某些情況下的數據類型,讓我們想象一下你正在使用的日期範圍

... { $match : { $gte : ISODate('2013-12-01T10:00:00Z') } } ... 

您需要pyMongo使用datetime和用雙引號括起來的關鍵字在外殼聚集:

... { "$match" : { "$gte" : datetimevar } } ... 

儘管如此,您還是需要在聚合框架中進行大量練習,並學習如何在shell中執行此操作。你的問題太籠統了,看起來你根本不瞭解聚合框架。如果你來自SQL世界,無論你使用哪種引擎,我建議你花費更多時間用於聚合框架並在線上學習。您不需要深入瞭解SQL內部如何進行聚合,因爲這是正常的,SQL(任何引擎)會爲您解決問題並以奇蹟般的方式返回結果。不是在非SQL數據庫中的情況。想想聚集爲您應用不同的轉換您的數據管道:

我有我的數據,以便:

  1. 我篩選記錄我不希望由我場聚集
  2. 我組需要
  3. 我從這個小組再次過濾,除去一些成果
  4. 我對它們進行排序
  5. 我限制結果,以N條記錄

這是一個小例子,只是檢查文檔和也跟着類online