Как применить сортировку для заполнения элемента в мангусте? [Дубликат]

Отражение - плохая идея.

Направьте этот gist . Существует метод, который выполняет выбор, но также вызывает обратный вызов:

  @CallSuper
    public void setSelectedItem(int position) {
        if (position >= getMenu().size() || position < 0) return;

        View menuItemView = getMenuItemView(position);
        if (menuItemView == null) return;
        MenuItemImpl itemData = ((MenuView.ItemView) menuItemView).getItemData();


        itemData.setChecked(true);

        boolean previousHapticFeedbackEnabled = menuItemView.isHapticFeedbackEnabled();
        menuItemView.setSoundEffectsEnabled(false);
        menuItemView.setHapticFeedbackEnabled(false); //avoid hearing click sounds, disable haptic and restore settings later of that view
        menuItemView.performClick();
        menuItemView.setHapticFeedbackEnabled(previousHapticFeedbackEnabled);
        menuItemView.setSoundEffectsEnabled(true);


        mLastSelection = position;

    }

16
задан Ludo 3 May 2013 в 07:46
поделиться

5 ответов

Этот пример выше работает с Mongoose 2.x, с Mongoose 3.x, используйте этот синтаксис:

Group
  .find({})
  .populate('Members', '_id name', null, { sort: { 'created_at': -1 } })
16
ответ дан Ludo 22 August 2018 в 10:10
поделиться
  • 1
    Могу ли я узнать, что здесь стоит ~ '_id name', null, ~? – Kannan 18 July 2018 в 15:20

Вы также можете неявно указывать только необходимые параметры заполнения:

Group
  .find({})
  .populate({path: 'Members', options: { sort: { 'created_at': -1 } } })

Посмотрите на http://mongoosejs.com/docs/api.html#document_Document-populate

43
ответ дан Artem Fedosov 22 August 2018 в 10:10
поделиться

Это работало корректно для меня в версиях Mongoose 5 и выше.

Clinics.findById(req.params.id).populate({path:'users',options:{ sort:{date : 1}}}).exec(callback);
0
ответ дан Gaurang Dave 22 August 2018 в 10:10
поделиться

Следующее работало для меня в Mongoose v5.0.5:

    Schedule.find({})
        .populate({path: 'eventComments', options: {sort:{"commentDate": "descending"}}})
        .exec(function(err, result) {
            if (err) {
                throw err
            } 

            else {
                return res.json(result);
            }
    });

P.S. Ключевое различие между этим примером и примером Kitten заключается в том, что commentDate находится в кавычках, тогда как Date (в примере Kitten) нет. Это может потребоваться для некоторых из вас. Надеюсь это поможет.

0
ответ дан NBB 22 August 2018 в 10:10
поделиться

И для Mongoose 4.x используйте этот синтаксис:

Kitten.find().populate({
    path: 'owner'
  , select: 'name'
  , match: { color: 'black' }
  , options: { sort: { name: -1 }}
}).exec(function (err, kittens) {
  console.log(kittens[0].owner.name) // Zoopa
})

// alternatively
Kitten.find().populate('owner', 'name', null, {sort: { name: -1 }}).exec(function (err, kittens) {
  console.log(kittens[0].owner.name) // Zoopa
})

Ссылка: Mongoose docs

9
ответ дан Wtower 22 August 2018 в 10:10
поделиться
  • 1
    Это не работает для меня. – Nico Passerini 29 September 2016 в 12:41
  • 2
    Кроме того, я не могу найти точную ссылку на поведение параметра сортировки в мангусте. Но наверняка параметры являются 5-м параметром в альтернативном синтаксисе, после пути, выбора, модели и соответствия. – Nico Passerini 29 September 2016 в 12:43
  • 3
    @NicoPasserini извините, если это не сработает для вас, это точный пример из официальной документации, связанной с ответом. Так что вы, вероятно, ошибаетесь. – Wtower 29 September 2016 в 13:25
  • 4
    Я думаю, что это подтвержденная ошибка, пожалуйста, взгляните на: github.com/Automattic/mongoose/issues/2202 . – Nico Passerini 6 October 2016 в 22:50
  • 5
    Я использую mongoose 4.6, и мой код выглядит так: .populate ({path: 'bookedFor.id', выберите: 'name mobileNumber', options: {sort: {mobileNumber: -1}}}) `Но это не рабочий, может ли кто-нибудь указать на ошибку? – Gaurav 3 January 2017 в 13:46
Другие вопросы по тегам:

Похожие вопросы: