我希望使用数组字段的第0个值,在Mongo聚合$lookup查询中查找匹配的销售文档。这是我的查询:
db.products.aggregate([
{
$match : { _id:ObjectId("57c6957fb190ecc02e8b456b") }
},
{
$lookup : {
from : 'sale',
localField: 'categories.0',
foreignField: 'saleCategoryId',
as : 'pcSales'
}
}]);
结果:
{
"_id" : ObjectId("57c6957fb190ecc02e8b456b"),
"categories" : [
"57c54f0db190ec430d8b4571"
],
"pcSales" : [
{
"_id" : ObjectId("57c7df5f30fb6eacb3810d1b"),
"Title" : "Latest Arrivals",
}
]}
这个查询会返回一个匹配项,但是当我检查时发现它不匹配。我不知道为什么会发生这种情况,而且当我从查询中删除第0部分时,它返回一个空数组。 就像这样:
{
"_id" : ObjectId("57c6957fb190ecc02e8b456b"),
"categories" : [
"57c54f0db190ec430d8b4571"
],
"pcSales" : []
}
saleCategoryId是一个数组字段,其中包含categoriesKey的数组。
请帮忙。