MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB projette les documents dont le nombre est supérieur à 2

Vous devez projeter les autres champs et votre $match pipeline aura juste besoin de faire une requête sur le champ nouvellement créé pour filtrer les documents en fonction de la taille du tableau. Quelque chose comme ce qui suit devrait fonctionner :

db.entity.aggregate([
    {
        "$project": {
            "Line": 1,
            "LineStart": 1, "SSCEXPEND": 1,
            "SSCEXPEND_count": { "$size": "$SSCEXPEND" }
         }
    },
    {
        "$match": {
            "SSCEXPEND_count": { "$gte": 2 }
         }
    }
])

Exemple de sortie :

/* 0 */
{
    "result" : [ 
        {
            "_id" : "201503110040020021",
            "Line" : "1",
            "LineStart" : ISODate("2015-03-11T06:49:35.000Z"),
            "SSCEXPEND" : [ 
                {
                    "Secuence" : 10,
                    "Title" : 1
                }, 
                {
                    "Secuence" : 183,
                    "Title" : 613
                }
            ],
            "SSCEXPEND_count" : 2
        }
    ],
    "ok" : 1
}