34

取得したコレクションから入力されたドキュメントを並べ替えたいのですが、リクエストするとエラーが発生します。

Document Group(Group) と 'Member' (Group.Members) を許可しましょう

Group
  .find({})
  .populate('Members')

完全に機能しますが、並べ替えたいので、次のようにします。

Group
  .find({})
  .populate('Members', ['_id', 'name'], null, { sort: [[ 'created_at', 'desc' ]] })

TypeError: Invalid select() argument. Must be a string or object.これを追加するとエラーが発生します...

4

6 に答える 6

70

populate の必須パラメーターのみを明示的に指定することもできます。

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

http://mongoosejs.com/docs/api.html#document_Document-populateをご覧ください

于 2013-08-30T17:01:47.590 に答える
17

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
})

参考:マングースのドキュメント

于 2016-07-20T09:25:33.913 に答える