sql >> Databáze >  >> NoSQL >> MongoDB

Nesprávný počet z agregačního dotazu

Problém je v tom, že zde:

"sp": {
    $split: [
        "$sourceList.source",
        "\n"
    ],
    $split: [
        "$sourceList.source",
        " "
    ]
}

pouze druhý $split je spuštěn MongoDB a vrací hello\nworld jako jeden řetězec. Neexistuje žádná taková "kaskádová" syntaxe, protože je to prostě stejný klíč JSON $split takže poslední vyhrává.

Chcete-li to opravit, můžete použít $reduce pro použití $split mezerou na poli s rozdělením podle \n hodnoty:

{
    $project: {
        "sp": {
            $reduce: {
                input: { $split: [ "$sourceList.source", "\n" ] },
                initialValue: [],
                in: { $concatArrays: [ "$$value", { $split: [ "$$this", " " ] } ] }
            }
        }
    }
}

Hřiště Mongo



  1. Neplatné ns při připojování k serveru mongodb

  2. Chyba aktualizace dokumentu Mongoose

  3. pushOrModify jako operátor pro vnořený dokument mongo

  4. Proč moje schéma nepřidává výchozí hodnoty do polí mongoose?