Mongodb如何获取两列的总和并将其保存到另一列

时间:2013-01-28 07:52:48

标签: mongodb

嗨,我的mongodb系列看起来像这样

{ "created" : ISODate("2013-01-01T00:00:00Z"), "total_page_impression_count" : 500, "total_page_story_count" : 7 }
{ "created" : ISODate("2013-01-02T00:00:00Z"), "total_page_impression_count" : 511, "total_page_story_count" : 7 }
{ "created" : ISODate("2013-01-03T00:00:00Z"), "total_page_impression_count" : 513, "total_page_story_count" : 7 }

我希望将(total_page_impression_count + total_page_story_count)的值保存在同一个表的另一列中。任何人都知道这样做的方法。根据调查结果我知道的是,它不可能像SQL一样。如果有人能提供帮助,我会很满意。提前谢谢。

3 个答案:

答案 0 :(得分:3)

您可以手动迭代所有文档并编写聚合字段。使用您的语言驱动程序或JavaScript shell。是的,mongodb中没有update users set full_name = first_name + last_name种命令。

答案 1 :(得分:0)

我认为应用程序逻辑是一种应用程序逻辑。并且,在处理可疑的性能增益时,保存聚合以执行新的非规范化级别的结果,首先是关于开发人员的选择。那么,10gen需要实现这样的功能吗?


googletranslate

答案 2 :(得分:-1)

mongodb不是RDB。 mongodb没有“加入”功能。

db.yourtable.insert({ "created" : ISODate("2013-01-01T00:00:00Z"), "total_page_impression_count" : 500, "total_page_story_count" : 7 })

你需要插入2次。

db.yourtable.insert({ "created" : ISODate("2013-01-01T00:00:00Z"), "total_page_impression_count" : 500, "total_page_story_count" : 7 });
db.othertable.insert({"total_page_story_count":507});