Я пытаюсь сделать очень простой запрос, объединяющий две коллекции с помощью агрегации.
У меня есть две коллекции,
productSchema = new Schema({
product: { type: String },
price: { type: Number},
})
const inventoriesSchema= new Schema({
date: { type: Date},
products: [productSchema],
})
Теперь я хочу собрать все продукты и внутри каждого продукт, который я хочу привнести в инвентарь.
Это то, что я делаю.
productModel.aggregate([
{
$lookup: {
from: 'inventories',
let: {
'product': { $toString: '$_id' }
},
pipeline: [
{
$match: {
'products._id': '$$product'
}
},
],
as: 'inventory',
}
},
])
Я пробовал много способов ... с $ toObjectId $ toString ... используя $ expr тоже вот так ...
{
$match: {
$expr: {
$and: [
{ $eq: ['$product._id', { $toString: "$$product" }] }
]
}
}
}
Что я делаю не так ... ???