У меня есть модель, в которой хранятся идентификаторы объектов из другой модели. Теперь мне нужно найти внутри этой модели, которая содержит конкретные идентификаторы, другую модель.
Моя схема:
У меня есть модель с полем, содержащим идентификаторы объектов. как ..
const SpiceSchema = new mongoose.Schema({
createdat: {
type: Date,
required: true,
default: Date.now,
},
name: {
type: String,
required: true,
},
image: {
type: String,
},
description: {
type: String,
},
blends: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'blend',
}],
flavors: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'flavor',
}],
ingredients: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'ingredient',
}],
regions: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'region',
}],
});
Теперь документ выглядит следующим образом ..
{ blends: [ 5cf296751771e6157cc2b257, 5cf296f1c61d6739b0903ef5 ],
flavors: [ 5cf2b268acac9e261459ea3a ],
ingredients: [ 5cf2b281acac9e261459ea3b ],
regions: [],
_id: 5cf4162d95aa7d28e0c4e324,
name: 'themeal',
description: 'sldkjf ldskjflksdj f\r\nlorem salute saloni',
createdat: 2019-06-02T18:32:13.270Z,
__v: 0,
image: '5cf4162d95aa7d28e0c4e324.jpg' } ]
У меня есть множество смесей, поступающих из внешнего интерфейса, как это ..
query.blends: [ '5cf2956b1771e6157cc2b256', '5cf296751771e6157cc2b257' ]
Мне нужно найти все документы внутри схемы специй, которая содержит эти две смеси ..
В настоящее время я пытаюсь добиться этого, выполнив:
const spicesQuery = Spice.find();
spicesQuery.where({blends: {$in: query.blends}});
const spices = spicesQuery.sort({name: 1}).exec();
console.log(spices);
Я получаю все специи в модели .. Не только те, которые имеют эти две смеси ..