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

Bagaimana cara mengembalikan array string dengan agregasi mongodb

.aggregate() metode selalu mengembalikan Objects apa pun yang Anda lakukan dan itu tidak dapat berubah.

Untuk tujuan Anda, Anda mungkin lebih baik menggunakan .distinct() sebagai gantinya, yang hanya mengembalikan larik nilai yang berbeda:

db.users.distinct("emails.address");

Manakah keluaran yang Anda inginkan:

["[email protected]","[email protected]","[email protected]"]

Jika Anda benar-benar ingin menggunakan .aggregate() maka transformasi ke nilai saja perlu terjadi "di luar" ekspresi dalam pemrosesan pasca. Dan Anda juga harus menggunakan $unwind ketika berhadapan dengan array seperti ini.

Anda dapat melakukannya dengan JavaScript .map() misalnya:

db.users.aggregate([
    { "$unwind": "$emails" },
    { "$group": { "_id": "$emails.address" } }
]).map(function(el) { return el._id })

Yang memberikan output yang sama, tetapi .map() melakukan transformasi sisi klien alih-alih di server.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mencantumkan pesan terakhir dari setiap percakapan, yang melibatkan pengguna, di MongoDB

  2. Bagaimana Mencegah Rollback di MongoDB

  3. Apa perbedaan antara replaceOne() dan updateOne() di MongoDB?

  4. Bagaimana saya bisa membuat indeks dengan pymongo

  5. Hapus Duplikat dari MongoDB