Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
553 views
in Technique[技术] by (71.8m points)

mongoose - How to sort a populated document in find request?

I would like to sort a populated Document from the collection i fetch, i get an error requesting it.

Let's admit a Document Group (Group) and 'Member' (Group.Members)

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

Works perfectly, but i would like to sort it so i do this:

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

I get the error TypeError: Invalid select() argument. Must be a string or object. by adding this...

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can also explicitly specify only required parameters of populate:

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

Have a look at http://mongoosejs.com/docs/api.html#document_Document-populate


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...