Er zijn enkele manieren om dit te bereiken. De eerste is door $elemMatch
operator:
const docs = await Documents.find({category: { $elemMatch: {$eq: 'yourCategory'} }});
// you may need to convert 'yourCategory' to ObjectId
De tweede is van $in
of $all
operators:
const docs = await Documents.find({category: { $in: [yourCategory] }});
of
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
is als OR en $all
zoals EN. Raadpleeg deze link voor meer informatie:https://docs.mongodb.com /manual/referentie/operator/query/all/
De derde is door aggregate()
functie:
const docs = await Documents.aggregate([
{ $unwind: '$category' },
{ $match: { 'category': mongoose.Types.ObjectId(yourCategory) } }
]};
met aggregaat() krijg je slechts één categorie-ID in je categorie-array.