इसे हासिल करने के कुछ तरीके हैं। पहला तरीका है $elemMatch
ऑपरेटर:
const docs = await Documents.find({category: { $elemMatch: {$eq: 'yourCategory'} }});
// you may need to convert 'yourCategory' to ObjectId
दूसरा है $in
. द्वारा या $all
ऑपरेटर:
const docs = await Documents.find({category: { $in: [yourCategory] }});
या
const docs = await Documents.find({category: { $all: [yourCategory] }});
// you can give more categories with these two approaches
//and again you may need to convert yourCategory to ObjectId
$in
OR और $all
. जैसा है और की तरह। अधिक जानकारी के लिए इस लिंक को देखें:https://docs.mongodb.com /मैनुअल/संदर्भ/ऑपरेटर/क्वेरी/सभी/
तीसरा है aggregate()
. द्वारा समारोह:
const docs = await Documents.aggregate([
{ $unwind: '$category' },
{ $match: { 'category': mongoose.Types.ObjectId(yourCategory) } }
]};
कुल () के साथ आपको अपनी श्रेणी सरणी में केवल एक श्रेणी आईडी मिलती है।