1
У меня есть ниже структуры документа:MongoDB группа полем для различных элементов массива в суб документе
{
"_id" : ObjectId("576c5402eef7285c58f6a681"),
"asOfDate" : 20160602,
"universe" : [
{
"memberOf" : [
"group1",
"group2",
"group3",
"group4",
"group5"
],
"personName" : "John"
},
{
"memberOf" : [
"group22",
"group2",
],
"personName" : "Mary"
}]
},
{
"_id" : ObjectId("576c5402eef7285c58f6a684"),
"asOfDate" : 20160603,
"universe" : [
{
"memberOf" : [
"group1",
"group2",
"group6"
],
"personName" : "Chris"
},
{
"memberOf" : [
"group7",
"group5",
],
"personName" : "Jack"
}]
}
Я пытаюсь получить список отчетливым universe.memberOf
для каждого из asOfDates
в коллекции. Требуемый выход ниже. Единственный способ, которым я мог понять, - это запустить отчетливый для каждой даты. Но мне придется зацикливаться на каждую дату, что может оказаться неэффективным.
{
20160602 : ["group1", "group2", "group3", "group4", "group5", "group22"],
20160603 : ["group1", "group2", "group6", "group7", "group5"]
}
Hi DAXaholic. Большое спасибо за ваше решение. Это именно то, что я искал. Просто, когда у вас появится шанс, вы можете пролить свет, чтобы выяснить, зачем нам цепляться за операции размотки? Еще раз спасибо. – user3516370
Добро пожаловать. $ unwind может только разматывать один уровень за раз, поэтому сначала нам нужно развернуть массив юниверса, а затем массив memberOf. – DAXaholic
Прохладный, спасибо человеку! Готово принято! – user3516370