MongoDB, отображающий две находки в одной строке - PullRequest
1 голос
/ 12 марта 2019

Я пытаюсь отобразить результаты двух запросов 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}

1 Ответ

0 голосов
/ 12 марта 2019

Оператор запроса агрегации $match определяет, какие документы будут найдены в базе данных, и может использовать все обычные операторы поисковых запросов Монго. Ваш $group уже правильно суммирует по $player_id, поэтому вы можете обновить свой $match, чтобы включить оба идентификатора, и ваш конвейер должен работать:

db.games.aggregate([{$match:{player_id: {$in: [12345, 6789]}},{"$group" : {_id:"$player_id", count:{$sum:1}}}])

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...