Я пытаюсь построить карту как часть групповой операции в MongoDB, но мне не повезло.Возможно ли построить карту в агрегации MongoDB?
Мои документы структурированы следующим образом:
type : artist,
artist : David Bowie,
song : "Starman"
Например, как часть моей агрегации Я хочу, чтобы сгруппировать все «типы» и иметь карту, содержащую имя художников, как ключ и песни в качестве значения , Для выхода типа:
[_id : artist, myMap : ["David Bowie" : "Starman"]]
Но я не уверен, что это возможно. Я пробовал использовать Mongos $ push, но мне не нравится, когда я пытаюсь нажать карту. Кто-нибудь пытался это сделать раньше?
Heres запрос я пробовал:
db.music.aggregate(
{
$group: {
_id: "$type",
myMap : { $push: {"$artist" : "$song" }}
}
}
)
Это может быть близко к чему вы ищете: 'db.music.aggregate ( \t {$ Проект: { \t \t" Тип ": 1, \t \t Foo: { "художник": "$ художник", "песня": "$ песня"} \t}}, \t {$ группа: { \t \t "_id":" $ тип ", \t \t "map": {$ push: "$ foo"} \t}} ) ' –
@orid Спасибо .. Отметьте это как ответ, и я соглашусь. Прекрасно работает – Travis