MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

$unwind array vazio


Com a versão MongoDB 3.2 e mais recente, o $unwind O operador agora tem algumas opções onde, em particular, o preserveNullAndEmptyArrays opção vai resolver isso.

Se esta opção for definida como verdadeira e se o caminho for nulo, ausente ou uma matriz vazia, $unwind emite o documento. Se for falso, $unwind não gera um documento se o caminho for nulo, ausente ou uma matriz vazia. No seu caso, defina como true:
db.collection.aggregate([
    { "$unwind": {
            "path": "$solved",
            "preserveNullAndEmptyArrays": true
    } },
    { "$group": {
        "_id": "$_id",
        "login": { "$first": "$login" },
        "solved": { "$sum": "$solved.points" }
    } }
])