Есть ли способ пропустить разные выходные данные фильтра поиска в одном запросе MongoDB - PullRequest
0 голосов
/ 06 мая 2020

Можно ли пропустить первую запись в документе по имени. Например, product_detail - это коллекция, и в ней 10 документов с именем apple и 10 документов с именем man go могу ли я пропустить первые 2 документа в каждом? Приведенный ниже запрос для пропуска первых 2 документов в apple.

Query : 
db.getCollection('product_detail').find({"productInfo.name" : "apple"}).skip(2);
db.getCollection('product_detail').find({"productInfo.name" : "mango"}).skip(2);

Вместо двух запросов для пропуска 2 документов для «productInfo.name»: «apple» и «productInfo.name»: «man go "Мне нужен один Может ли кто-нибудь мне помочь?

1 Ответ

0 голосов
/ 06 мая 2020

Извлечь $ фасет этап конвейера агрегации

db.getCollection('product_detail').aggregate([{
  $facet: {
    apple: [
      {
        $match: { "productInfo.name": "apple" } 
      },
      {
        $sort: {/* your sort condition here to ensure order */} }]
      },
      {
        $skip: 2
      }
    ],
    mango: [
      {
        $match: { "productInfo.name": "mango" }
      },
      {
        $sort: {/* your sort condition here to ensure order */} }]
      },
      {
        $skip: 2
      }
    ]
  }
}])
...