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

Kembalikan hasil sebagai Array Nilai Saja

Anda dapat map() . Gunakan Array.map() dengan luwak karena mengembalikan array, dan Anda lebih baik menggunakan $group _id daripada menggunakan $push

const subCategory = (await SubCategory.aggregate([
  { '$match': { category: "dining" } },
  { '$group': { '_id': "$name" } }
])).map(({ _id }) => _id);

Atau dengan Cursor.map() jika menggunakan Collection yang mendasarinya dari driver inti:

const subCategory = await SubCategory.collection.aggregate([
  { '$match': { category: "dining" } },
  { '$group': { '_id': "$name"  } }
]).map(({ _id }) => _id).toArray();

Hampir sama dengan find() jika Anda tidak menginginkan hasil yang "berbeda":

const subCategory = (await Subcategory.find({ category: "dining" }))
  .map(({ name }) => name);

Atau dengan Cursor.map()

const subCategory = await Subcategory.collection.find({ category: "dining" })
  .map(({ name }) => name).toArray();

Anda juga dapat menggunakan distinct() , yang pada dasarnya melakukan variasi dari proses agregasi dan map() "under the hood" ( "kembalikan hanya bagian bidangnya" dan bukan metode agregasi yang berbeda ):

const subCategory = await SubCategory.distinct("name",{ category: "dining" });

MongoDB sendiri tidak akan mengembalikan apa pun selain Dokumen BSON, dan string sederhana BUKAN Dokumen BSON.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Memetakan dokumen dengan skema yang ditentukan sebagian

  2. MongoDB $type Aggregation Pipeline Operator

  3. Perbarui array dengan beberapa kondisi di mongodb

  4. MongoDB memperbarui bidang dalam array bersarang

  5. Kembalikan hasil sebagai Array Nilai Saja