mongodb - 使用 Mongodb 和 Laravel 对键求和并按键分组
问题描述
拥有这个系列 -
{
"_id": "5b508587de796c0006207fa7",
"id": "1",
"status": "pending",
"updated_at": "2018-07-19 13:02:40",
"created_at": "2018-07-19 12:35:19"
},
{
"_id": "5b508587de796c0006207fa5",
"id": "2",
"status": "completed",
"updated_at": "2018-07-19 13:02:40",
"created_at": "2018-07-19 12:35:19"
},
我想要一个查询,通过id键对状态键求和。
例如 -
{
"id":"1",
"pending":"1"
}
我正在将 Laravel 5.5 与 MongoDB 一起使用
解决方案
这是一个工作MongoPlayground。查看 Mongo 对Aggregations的参考,以及$group
operator。
db.collection.aggregate([
{
$group: {
_id: "$status",
sumOfStatus: {
$sum: 1
}
}
}
])
编辑:校对后,我不太确定这就是你要找的。此示例将返回每个状态的列表,id
例如:
[
{
"_id": "5",
"completed": 3,
"pending": 3
}
]
为此,我利用 运算符来根据它们的值$cond
有条件地记录文档。一个缺点是您必须为每个值重复此操作。不确定解决方法。$sum
status
关于 Laravel 实现,我绝对不是 Laravel 专家,但请查看这个答案,其中显示了如何访问该aggregate()
方法的示例。
推荐阅读
- matlab - 合并特定的文本文件
- c# - “输入字符串的格式不正确”统一错误
- javascript - React 获取输入类型=文件值
- ios - iOS 键盘扩展:像粘贴一样的拟我表情
- c++ - C++ 中的最新调用
- jsx - Extendscript ActionManager 脚本可以从图层中获取每个通道和颜色模式的位吗?
- android-studio - 在 android studio 3.1.3 中丢失别名密钥密码
- python - 为什么 findnext on beautifulsoup 在每次运行时返回不同的结果
- ios - 弹出后我可以在 Windows 中运行 ios 应用程序吗?
- html - 我的 contenteditable div 的占位符文本不可见?