我有两个系列:产品和股票。 这两个集合之间的关系是一对一的。
产品结构:
{
_id:
sku:
....
}
股票结构:
{
_id:
sku:
availability: []
....
}
我的查询:
Products.aggregate([
{
$match: cAux
}, {
$lookup: {
from: "Stocks",
localField: "sku",
foreignField: "sku",
as: "availability"
}
}, {
$sort: PRODUCT_SORT
}
]);
此结果"加入"是
{
_id:
sku:
availability: {_id:, sku:, **availabity**: []}
...
}
加入是可以的,但我想只加入可用性数组字段,而不是整个Stock文档。什么是实现这一目标的最佳方式?任何帮助将不胜感激。
答案 0 :(得分:0)
<强>解决方案强>
Products.aggregate([
{
$match: cAux
}, {
$lookup: {
from: "Stocks",
localField: "sku",
foreignField: "sku",
as: "availability"
}
}, {
$project: {
...PRODUCT_FIELDS,
availability: {
$arrayElemAt: ['$availability.availability', 0]
}
}
}, {
$sort: PRODUCT_SORT
}
]);