簡體   English   中英

選擇不使用$ unwind(貓鼬聚合)

[英]Select without using $unwind (Mongoose aggregation)

我正在使用Mongoose的聚合(MongoDB v3.2)。 數據庫中有兩個項目factory1factory2 每個工廠都有一個陣列的現場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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM