You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB集合按评分及数组内最新评论日期排序问题

完善MongoDB查询的排序逻辑

嘿,我来帮你搞定这个排序逻辑的补充!你已经完成了第一步的筛选和基础排序,现在只需要在sort里多加一个规则,就能实现评分相同时按评论数组最后一条的日期排序啦。

在MongoDB里,要直接定位数组的最后一个元素,咱们可以用数组字段名.-1.子字段的写法,这样就能精准拿到最后一条评论的日期字段。

给你整理好的完整查询语句:

db.getCollection('resources').find({
  'skills.name': { $all: ["Java", "Python"] }
}).sort({
  'status.rating': -1, // 先按评分从高到低排
  'comments.-1.date': -1 // 评分一样时,按最后一条评论的日期从新到旧排
})

小提示:

  • 要是你的评论数组不叫comments,或者日期字段不是date,记得替换成你实际用的字段名哦。
  • 如果想让评分相同的时候按最后一条评论的日期从旧到新排,把'comments.-1.date'后面的-1改成1就行。
  • 这个写法适用于MongoDB 3.2及以上版本,现在大部分项目用的都是新环境,应该没问题;要是你用的是特别老的版本,可能得改用聚合管道来处理,但这种情况很少见啦。

内容的提问来源于stack exchange,提问作者Miriam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:11:21