Функция Aggregate не работает в mongodb с использованием lookup - PullRequest
0 голосов
/ 06 февраля 2020

Функция Aggregate не работает в mongodb с использованием поиска. Можете ли вы помочь мне выйти из этой ситуации. Я много раз пытался также удалить группу. состояние. но это не работает.

db.faq_feedback.aggregate(
   {
      "project": {
         "question_id": 1,
         "yes": { "$cond": [{ "$eq": ["$feedback", "yes"] }, 1, 0] },
         "no": { "$cond": [{ "$eq": ["$feedback", "no"] }, 1, 0] }
      },
      "group": {
         "_id": "$question_id",
         "yes": { "$sum": "$yes" },
         "no": { "$sum": "$no" }
      },
      "lookup":
         [{
            "from": "faq",
            "localField": "_id",
            "foreignField": "_id",
            "as": "faq"
         }],
      "unwind": "$faq",
      "match": { "faq.lang": "en" },
      "limit": 100,
      "skip": 0,
      "sort": { "no": -1 }
   }
)     

1 Ответ

0 голосов
/ 06 февраля 2020

Вы можете попробовать это в оболочке mon go.

db.faq_feedback.aggregate([
{
    "$project": {
         "question_id": 1,
         "yes": { "$cond": [{ "$eq": ["$feedback", "yes"] }, 1, 0] },
         "no": { "$cond": [{ "$eq": ["$feedback", "no"] }, 1, 0] }
      }
},
{"$group": {
         "_id": {question_id:"$question_id"},
         "yes": { "$sum": "$yes" },
         "no": { "$sum": "$no" }
      }
},
{
    "$lookup":
         {
            "from": "faq",
            "localField": "_id",
            "foreignField": "_id",
            "as": "faq"
         },
},
{ "$unwind": "$faq"},
{"$match": { "faq.lang": "en" }},
{"$limit": 100},
 {"$skip": 0}
     { "$sort": { "no": -1 }}
])
...