实际上,我使用map reduce来进行一些计算。我不能使用聚合框架做到这一点,因为我的计算没有可用的管道运算符。
是否可以编写自定义管道运算符?
提前感谢
发布于 2012-11-29 04:00:35
答案将取决于你对“可能”的定义:
1)开箱即用:不。
在MongoDB 2.2中,没有允许您添加新管道操作符的最终用户功能。聚合框架和管道运算符在C++中实现,以提高性能和并发性,优于早期的聚合选项,如MapReduce (在JavaScript中实现)。
2)如果你想用C++写一个:是的(但不是微不足道的)。
MongoDB是一个开源项目,因此您可以选择深入研究C++代码并自己实现其他功能(请参阅:src/mongo/db/pipeline
)。请注意,有关于Contributing to the MongoDB project的指导方针,并且正在进行的开发非常活跃。
如果您想编写自定义函数,目前最好的选择是继续使用MapReduce。
不管上面的选项是什么,如果有你想看到的管道运算符或特性,请在组件( MongoDB Jira SERVER project:Aggregation Framework
)中给出建议。这将允许其他人对功能请求进行评论、观察和投票。如果你最终自己实现了这个特性,你可以在你的pull请求中引用Jira特性描述。在提交新功能请求之前,您还应该搜索此功能是否具有already been suggested。
例如,已经有这样的请求:
https://stackoverflow.com/questions/13612161
复制相似问题