![](/img/trans.png)
[英]Mongoose/MongoDB Aggregation - $match $unwind $match not working?
[英]Select without using $unwind (Mongoose aggregation)
我正在使用Mongoose的聚合(MongoDB v3.2)。 數據庫中有兩個項目factory1
和factory2
。 每個工廠都有一個陣列的現場products
。
我要選擇所有具有產品code1=='aa'
和code2=='BB'
工廠
// factory1.products
[{
code1: 'aa',
code2: 'AA'
}, {
code1: 'bb',
code2: 'BB'
}]
// factory2.products
[{
code1: 'aa'
code2: 'BB'
}]
我現在是這樣的:
Factory
.aggregate([
{ $unwind: '$products' }, // Ensure get factory2 only when use $match. Without $unwind, will get both factory1 and factory2
{ $match: {
'products.code1': 'aa',
'products.code2': 'BB'
}}
]);
有沒有不使用$unwind
選擇的方法? 因為稍后我想再次獲得完整的物品。 謝謝
將您的$match
更改為使用$elemMatch
以要求兩個條件均由同一products
元素滿足:
Factory.aggregate([
{ $match: { products: { $elemMatch: {
code1: 'aa',
code2: 'BB'
}}}}
]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.