आप map()
कर सकते हैं . Array.map()
Use का प्रयोग करें नेवला के साथ क्योंकि यह एक सरणी देता है, और आप केवल $group
. का उपयोग करके बेहतर हैं _id
$push
. का उपयोग करने के बजाय
const subCategory = (await SubCategory.aggregate([
{ '$match': { category: "dining" } },
{ '$group': { '_id': "$name" } }
])).map(({ _id }) => _id);
या Cursor.map()
. के साथ यदि अंतर्निहित Collection
. का उपयोग कर रहे हैं मुख्य चालक से:
const subCategory = await SubCategory.collection.aggregate([
{ '$match': { category: "dining" } },
{ '$group': { '_id': "$name" } }
]).map(({ _id }) => _id).toArray();
find()
. के साथ बहुत कुछ ऐसा ही है यदि आप "विशिष्ट" परिणाम नहीं चाहते हैं:
const subCategory = (await Subcategory.find({ category: "dining" }))
.map(({ name }) => name);
या Cursor.map()
. के साथ
const subCategory = await Subcategory.collection.find({ category: "dining" })
.map(({ name }) => name).toArray();
आप distinct()
. का भी उपयोग कर सकते हैं , जो मूल रूप से एकत्रीकरण प्रक्रिया और map()
. में बदलाव करता है "अंडर द हुड" ("केवल फील्ड पार्ट लौटाएं" न कि अलग एग्रीगेशन मेथड):
const subCategory = await SubCategory.distinct("name",{ category: "dining" });
MongoDB स्वयं BSON दस्तावेज़ के अलावा कुछ भी नहीं लौटाएगा, और एक साधारण स्ट्रिंग BSON दस्तावेज़ नहीं है।