Mongodb поиск, чтобы получить один элемент вместо объекта - PullRequest
0 голосов
/ 02 марта 2019

моя коллекция:

groups : [{_id: 001, name: ABC, type: a}, {_id: 002, name: DEF, type: b}]

Я выполняю приведенную ниже кодировку, чтобы получить результат в mongodb:

  .aggregate([
  {
    $lookup: {
      from: 'groups',
      localField: 'groupId',
      foreignField: '_id',
      as: 'groupName'
    }
  },
  {
    $unwind: {
      path: '$groupName',
      preserveNullAndEmptyArrays: true
    }
  },
  {
    $project: 
      groupName: {
        name: 1
      }
   }

Результат, полученный из приведенной выше кодировки:

groupName: Object { name: "ABC" }

Но я не хочу, чтобы ABC был объектом.Я хочу, чтобы мой результат был одним элементом:

groupName: "ABC"

Есть идеи, как это сделать?

1 Ответ

0 голосов
/ 02 марта 2019

Используя $ project , вы можете достичь ожидаемого результата.

  .aggregate([
  {
    $lookup: {
      from: 'groups',
      localField: 'groupId',
      foreignField: '_id',
      as: 'groupName'
    }
  },
  {
    $unwind: {
      path: '$groupName',
      preserveNullAndEmptyArrays: true
    }
  },
  {
    $project: 
      {groupName: "$groupName.name"}
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...