2

嗨,我的 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 那样。如果有人可以提供帮助,我会很高兴。先感谢您。

4

3 回答 3

3

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

于 2013-01-28T07:55:28.577 回答
0

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


谷歌翻译

于 2013-01-28T10:16:55.617 回答
-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});
于 2013-01-28T08:01:31.333 回答