поиск mongodb с совпадением внешнего поля - PullRequest
1 голос
/ 04 августа 2020

Я хочу знать, как я могу найти совпадение.

Я мог бы найти две коллекции по этому запросу.

 db.category.aggregate([
 {
     $lookup:
     {
       from: "faq",
       localField: "_id",
       foreignField: "category_code",
       as: "faq"
     }
  }
])

Тогда я получаю этот результат.

Мне нужны только два элемента часто задаваемых вопросов, где del_flg равно «N»

Я не знаком с использованием mongodb.

Возможно ли это, если я использую pipline? Я пробовал несколько примеров трубопроводов, но не смог.

1 Ответ

1 голос
/ 04 августа 2020

Вы должны попробовать $ поиск с конвейером ,

  • let создаст переменную для доступа к идентификатору внутри конвейера поиска, используя $$
  • сопоставление конвейера с использованием $expr, потому что мы сравниваем оба поля $$id = $category_code
  • установить условие соответствия del_flg: N
db.category.aggregate([
  {
    $lookup: {
      from: "faq",
      let: {
        id: "$_id"
      },
      pipeline: [
        {
          $match: {
            $expr: {
              $eq: [
                "$$id",
                "$category_code"
              ]
            },
            "del_flg": "N"
          }
        }
      ],
      as: "faq"
    }
  }
])

Площадка: https://mongoplayground.net/p/gUVUMk6KIAV

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...