mongodb - MongoDB,在一行中显示两个发现
问题描述
我正在尝试显示两个 mongodb 查询的结果:
db.games.aggregate([{$match:{player_id:12345}},{"$group" : {_id:"$player_id", count:{$sum:1}}}])`
db.games.aggregate([{$match:{player_id:6789}},{"$group" : {_id:"$player_id", count:{$sum:1}}}])
每个查询都会找到每个玩家玩过的游戏数,但我需要在单个查询中比较两者之间的游戏数。
输出将类似于:
{"PlayerA":37,"PlayerB":98}
解决方案
$match
聚合查询运算符确定将从数据库中找到哪些文档,并且可以使用所有普通的 mongo 搜索查询运算符。您$group
已经通过 正确求和$player_id
,因此您可以更新您$match
以包含两个 id,并且您的管道应该可以工作:
db.games.aggregate([{$match:{player_id: {$in: [12345, 6789]}},{"$group" : {_id:"$player_id", count:{$sum:1}}}])
推荐阅读
- select - 如何将输入文本字段添加到选择元素中
- python - 使用 BeautifulSoup 从网站上抓取日期和月份
- android - 如何创建带有倾斜模式的文本视图而不添加 \t 的 \n?
- redis - 一个redis集群可以支持的最大master数
- facebook - Facebook Instant Gaming 配对功能因“玩家当前不符合匹配条件”而被屏蔽。
- java - Firebase Android getValue(class) 不起作用
- python - Django 表单错误(__init__() 采用 1 个位置参数,但给出了 2 个)
- go - Leekchan 会计与 ShopSpring Decimal 冲突
- python - 如何继承python中的每个类?
- awk - 在制表符分隔的文件中拆分和移动特定列