Tengo algunos documentos de objeto anidado. Y quiero recuperar esos objetos, agruparlos con el objeto anidado que tiene una matriz vacía usando la agregación.
déjame explicarte con más precisión, supongamos que mi colección consiste en los documentos que se dan a continuación---
documento 1
{ "_id": "17202155", "completed": [ "cse331", "cse312" ], "incompleted": [ { "name": "math", "preReq": [] }, { "name": "science", "preReq": [ "bang", "eng", "math" ] }, { "name": "astronomy", "preReq": [ "bang", "eng", "science" ] } ] },documento 2
{ "_id": "17202157", "completed": [ "cse331", "cse312" ], "incompleted": [ { "name": "math", "preReq": [] }, { "name": "science", "preReq": [] }, { "name": "astronomy", "preReq": [ "bang", "eng", "science" ] } ] }quiero recuperar el grupo de documentos por la identificación con el objeto que consiste en una matriz vacía. Eso significa que el resultado será...
{ "_id": "17202155", "incompleted": [ { "name": "math", "preReq": [] }, ] }, { "_id": "17202157", "incompleted": [ { "name": "math", "preReq": [] }, { "name": "science", "preReq": [] }, ] }He usado este código pero no funciona. Aunque soy nuevo en mongodb. por favor, ayúdame--
#mi código-
db.collection.aggregate({ "$unwind": "$_id" }, { "$group":{"_id": "$incompleted",} }, { "$match": { "_id.preReq": { $size: 0 } } }, )db.collection.aggregate([ { $unwind: "$incompleted" }, { $match: { "incompleted.preReq": [] } }, { $group: { _id: "$_id", incompleted: { $push: "$incompleted" } } } ])