【问题标题】:Combining match on text field with aggregate将文本字段上的匹配与聚合相结合
【发布时间】:2016-11-02 11:43:32
【问题描述】:

运行以下语句:

db.users.aggregate(
   [
       { $match : { "confirmed" : {$eq: "true" } } },
       { $group : { _id : "$email", email: { $push: "$email" } } }
   ]
)

给我零结果,尽管以下一个工作得非常好,给〜12k:

db.getCollection('users').find({confirmed:"true"})

问题:如何正确组合匹配和分组?我基本上是在找SELECT email FROM users GROUP BY email

添加: SELECT email, count(*) FROM users GROUP BY email 将是我的长期目标,但我似乎无法理解 mongodb :(

【问题讨论】:

  • 您能否使用示例文档更新您的问题?另外,您的 MongoDB 服务器是什么版本?

标签: mongodb


【解决方案1】:
db.users.aggregate(
   [
       { $match : { "confirmed" : "true" }  },
       { $group : { _id : "$email",count:{$sum:1} } }
   ]
)

` 请检查 true 是否为布尔值,如果布尔值比不需要检查它作为字符串它会给你 0 document.just 确认:是的

【讨论】:

    猜你喜欢
    • 2021-04-07
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 2019-06-22
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多