其實,我使用map reduce來進行一些計算。 我不能用聚合框架來做這件事,因爲我的計算中沒有可用的管線操作符。使用MongoDB Aggregation Framework的自定義管道操作符
是否可以編寫自定義管道操作符?
在此先感謝
其實,我使用map reduce來進行一些計算。 我不能用聚合框架來做這件事,因爲我的計算中沒有可用的管線操作符。使用MongoDB Aggregation Framework的自定義管道操作符
是否可以編寫自定義管道操作符?
在此先感謝
答案將取決於你的 「可能」 的定義:
1)開箱:NO。
在MongoDB 2.2中,沒有最終用戶功能允許您添加新的管道操作員。聚合框架和管道運營商是用C++實現的,用於改進早期聚合選項(如MapReduce(用JavaScript實現))中的性能和併發性。
2)如果你想用C++寫一個:YES(但不是微不足道的)。
MongoDB是一個開源項目,因此您可以選擇跳入C++代碼並自行實現附加功能(請參閱:src/mongo/db/pipeline
)。請注意,有關於Contributing to the MongoDB project的指南,並且正在進行的開發非常活躍。
如果要編寫自定義函數,那麼目前最佳選擇是繼續使用MapReduce。
無論上述選項如果有管道運營商或功能,你想看看請建議在MongoDB Jira SERVER project(組件:Aggregation Framework
)建議。這將允許其他人評論,觀看並對功能請求進行投票。如果您自己最終實現了該功能,則可以在您的請求中引用Jira功能描述。在提交新功能請求之前,您還應該搜索以查看此功能是否有already been suggested。
例如,已經有要求,如:
你需要什麼樣的額外的運營商? – Stennie
stddev,中位數,有條件的操作主要是 – hotips