node.js - mongodb lookup retrieve a parent object with no children -


i have a question problem in query in mongodb: can't retrieve surveys no childrens groups more information should check links:

$lookup multiple collections, , nested output

survey.aggregate([                     { "$lookup": {                     "from": "groups",                     "localfield": "_id",                     "foreignfield": "survey",                     "as": "groups"                 }},                  { "$unwind": "$groups" },                     { "$lookup": {                     "from": "questions",                     "localfield": "groups._id",                     "foreignfield": "group",                     "as": "groups.questions"                 }},                     { "$unwind": "$groups.questions" },                     { "$lookup": {                     "from": "response",                     "localfield": "groups.questions._id",                     "foreignfield": "question",                     "as": "groups.questions.responses"                 }},                 { "$group": {                     "_id": {                         "_id": "$_id",                         "company": "$company",                         "created_date": "$created_date",                         "enabled": "$enabled",                         "name": "$name",                         "groups": {                             "_id": "$groups._id",                             "name": "$groups.name",                             "order": "$groups.order",                             "created_date": "$groups.created_date",                             "survey": "$groups.survey"                         }                     },                     "questions": { "$push": "$groups.questions" }                 }},                 { "$sort": { "_id": 1 } },                 { "$group": {                     "_id": "$_id._id",                     "company": { "$first": "$_id.company" },                     "created_date": { "$first": "$_id.created_date" },                     "enabled": { "$first": "$_id.enabled" },                     "name": { "$first": "$_id.name" },                     "groups": {                         "$push": {                             "_id": "$_id.groups._id",                             "name": "$_id.groups.name",                             "order": "$_id.groups.order",                             "created_date": "$_id.groups.created_date",                             "survey": "$_id.groups.survey",                             "questions": "$questions"                         }                     }                 }},                 { "$sort": { "_id": 1 } }             ] 

your lookup has no issue. whenever unwind document empty array filed, unwind complete remove document.this why not getting result.

your problem can solve setting preservenullandemptyarrays null.

{   $unwind:     {       path: <field path>, // add unbind doc lookup pipeline.       preservenullandemptyarrays: true     } } 

Comments

Popular posts from this blog

neo4j - finding mutual friends in a cypher statement starting with three or more persons -

php - How to remove letter in front of the word laravel -

minify - Minimizing css files -