开始探索Mongo的奇迹...
所以我的目标很简单:获取页面所有者的页面浏览总数(仅举个例子,使用类似的概念)。
看起来像
SELECT SUM(views) FROM page WHERE user_id = 123;
或类似于MySQL的东西。
所以我正在使用MongoDB和Mongoose NodeJS包做类似的事情:
Page.aggregate([
{ $match : { user_id : 123 } },
{ $group : { _id : null, viewGroup : { $addToSet : "$views" } } },
{ $project : { view_total : { $sum : "$viewGroup" } } }
], (err, result) => { ... });
这是奇怪的部分:它有效,但只有当文档的“views”属性中至少有一个值为> 1。
所以说我有两个文档:
{ page_id : 1, user_id : 123, views : 1 }
{ page_id : 2, user_id : 123, views : 1 }
我得到的结果是 1 。
说我有这两个文档:
{ user_id : 123, views : 1 }
{ user_id : 123, views : 2 }
我得到的结果是 3 。
我必须接近这个错误。有什么帮助吗?
答案 0 :(得分:0)
正如Veeram在评论中所提到的,'#ajax' => [
'callback' => array($this, 'addMultipleItems'),
'event' => 'change',
'progress' => array(
'type' => 'throbber',
'message' => t('Adding another item...'),
),
],
应该被用来代替$push
。我没有意识到$addToSet
只添加了唯一值,其中$addToSet
只是将每个值推送到我想要的数组。