Как отсортировать по заполненному полю в пн goose? - PullRequest
0 голосов
/ 04 марта 2020

надеюсь, у всех дела идут хорошо.

У меня проблема с применением сортировки на заполненном поле. У меня есть две модели, скажем, socialChannels: которые будут иметь детали, такие как

{
   _id: "5643bgh534j3453jhf5", 
   name: "Facebook", 
   icon: "fb.png"
}

В другой модели, скажем, channelDeliverables: которые будут иметь детали, такие как

{
   _id: "546b5uhjh454v3j22jh", 
   channelId: "5643bgh534j3453jhf5", 
   name: "Facebook Page", 
   icon: " fbPage.png"
}

Итак, после заполнения модели channelDeliverables Я получаю что-то вроде

{
   _id: "546b5uhjh454v3j22jh",
   channelId: {
      _id: "5643bgh534j3453jhf5",
      name: "Facebook"
   },
   deliverableName: "Facebook Page",
   icon: " fbPage.png"
}

Теперь я хочу применить сортировку к полю channelId.name. Как я могу это сделать.

Я пробовал:

let query = await Deliverable.find(filter)
    .populate('channelId', {_id: 0, name: 1, order: 1, iconUrl: 1})
    .sort({'channelId.name': 1})
    .skip((offset - 1) * limit)
    .limit(limit);

и

let query = await Deliverable.find(filter)
    .populate({
      path: 'channelId',
      select: {_id: 0, name: 1, order: 1, iconUrl: 1},
      options: {sort: {name: 1}},    // I also has tried 'channelId.name' : 1 here
    })
    .skip((offset - 1) * limit)
    .limit(limit);

Буду признателен за любую помощь.

...