配列フィールドの 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 も、categorysKey の配列を含む配列フィールドです。
助けてください。