小编bea*_*ght的帖子

Mongo按计算条件排序

我有一个Mongo的消息集合,如下所示:

{
  'recipients': [],
  'unRead': [],
  'content': 'Text'
}
Run Code Online (Sandbox Code Playgroud)

收件人是一组用户ID,unRead是尚未打开邮件的所有用户的数组.这是按预期工作,但我需要查询所有消息的列表,以便它返回前20个结果,首先优先考虑未读的结果,如下所示:

db.messages.find({recipients: {$elemMatch: userID} })
  .sort({unRead: {$elemMatch: userID}})
  .limit(20)
Run Code Online (Sandbox Code Playgroud)

但这不起作用.根据结果​​是否符合某个标准,对结果进行优先排序的最佳方法是什么?

mongodb mongodb-query aggregation-framework

6
推荐指数
1
解决办法
3992
查看次数