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.