【问题标题】:Aggregate count query is not working anymore in Meteor 1.8Meteor 1.8 中的聚合计数查询不再起作用
【发布时间】:2019-05-03 21:43:46
【问题描述】:

我一直在查询中使用聚合来获取总记录数,但今天我从 Meteor 1.2 迁移到 1.8,现在下面的查询给了我一个例外:

我在服务器端使用 meteorhacks:aggregate @ 1.3.0 版

查询:

Articles.aggregate([
      { $match: {userId: 'a767GGhrd743Ghe349sd'} },
      { $group: { _id: null, count: { $sum: 1 } } }               
])[0];

例外:

TypeError: Cannot read property \'count\' of undefined\n

在 Meteor 1.2 中,同样的查询给了我计数器,但我已经更新到 Meteor 1.8,现在它不再工作了。

【问题讨论】:

  • 您是使用大气包还是使用 Meteor 中默认内置的 mongo 驱动程序来应用聚合?这是在服务器上还是在 minimongo 客户端上?
  • 使用大气包,并在服务器端
  • 请添加包名和包版本,以确保包兼容性和Meteor 1.8没有问题
  • 我已经用包和版本更新了我的问题
  • 下面我的回答能解决你的问题吗?

标签: meteor


【解决方案1】:

您正在使用的包 (meteorhacks:aggregate) 自 2015 年左右以来已被废弃。使用新的 Mongo >= 3.0.0(自 Meteor 1.7 以来引入)此包将不再工作,因为在Mongo 驱动程序。

替代方法是针对 the latest Mongo driver 自行实现聚合功能,或者使用包的活动维护分支,例如 sakulstra:aggregate

分叉包本身described the problem as well:

meteorhacks/meteor-aggregate 似乎没有维护,所以让我们维护一个分叉! Meteor 1.7 及其对 mongodriver v3 的升级引入了一些破坏性更改,这些更改将破坏 meteorhacks:meteor-aggregate。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    • 2019-10-16
    • 2021-02-10
    相关资源
    最近更新 更多