MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Hitungan salah dari kueri agregasi

Masalahnya ada di sini:

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

hanya $split second kedua dieksekusi oleh MongoDB dan mengembalikan hello\nworld sebagai satu tali. Tidak ada sintaks "cascade" seperti itu, karena itu hanya kunci JSON yang sama $split jadi kemenangan terakhir.

Untuk memperbaikinya, Anda dapat menggunakan $reduce untuk menerapkan $split dengan spasi pada array yang dibagi dengan \n nilai:

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

Taman Bermain Mongo



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - Ukuran file maksimum menggunakan GridFS

  2. Kueri agregasi luwak mengembalikan lebih dari satu catatan ketika seharusnya hanya mengembalikan satu

  3. arti dari sudo chown -R `id -u` /data/db

  4. Mongoose memperbarui array dalam

  5. Bagaimana cara melakukan pemulihan Mongo selektif?