MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Неправилен брой от заявка за агрегиране

Проблемът е, че тук:

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

само вторият $split се изпълнява от MongoDB и връща hello\nworld като една струна. Няма такъв "каскаден" синтаксис, тъй като това е просто същия JSON ключ $split така че последният печели.

За да коригирате това, можете да използвате $reduce за да приложите $split чрез празно пространство върху масив от разделяне на \n стойности:

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

Mongo Playground



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Монго филтър масив от масив от масив

  2. Stripe:Трябва да посочи източник или клиент

  3. Мигриране на MongoDB към DynamoDB, част 2

  4. Разрастване на лог файла на MongoDB

  5. solr манипулатори за импортиране на данни за MongoDB