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

Kesalahan bidang yang sama dalam agregasi _id

Bukan poin terdokumentasi yang paling jelas. Anda memerlukan representasi berbeda dari Fields objek di sini untuk mendefinisikan beberapa kondisi bidang Anda dengan benar:

Aggregation aggregation = newAggregation(
    match(criteria),
    unwind("kademeler"),
    match(criteria),
    group(
        Fields.from(
            Fields.field("name1", "kademeler.isemirleri.isemriKaynagi.name"),
            Fields.field("name2", "kademeler.isemirleri.isemriSebebi.name")
        )).count().as("etkilenenAboneSayisi")
);

Itu menggunakan Fields.field definisi yang memiliki “nama” dan “target” sehingga dapat ditafsirkan dengan benar. Menggunakan string biasa hanya akan menghasilkan tindakan default untuk menghapus semuanya hingga "titik" terakhir dalam nama bidang, dan sesuai kesalahan Anda, keduanya adalah hal yang sama. Menentukan dalam formulir ini memberi tahu pembuat bagaimana Anda ingin menanganinya dengan benar.

Yang pada dasarnya membuat serial $group sebagai:

{ "$group": {
    "_id": {
        "name1": "$kademeler.isemirleri.isemriKaynagi.name",
        "name2": "$kademeler.isemirleri.isemriSebebi.name"
    },
    "etkilenenAboneSayisi": { "$sum": 1 }
}}

Yang Anda inginkan.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kode kesalahan Cosmos DB 400 saat membuat dokumen baru

  2. Tidak ada deserializer Json yang ditemukan untuk tipe Option[reactivemongo.bson.BSONObjectID]

  3. Argumen yang diteruskan harus berupa String tunggal 12 byte

  4. Mengunci dokumen di MongoDB

  5. Array kosong mencegah dokumen muncul dalam kueri