我有一个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)
但这不起作用.根据结果是否符合某个标准,对结果进行优先排序的最佳方法是什么?