我有一个要排序的对象数组。根据文档,顶级.sort()的工作方式如下:
Product.findById(productId)
.sort({ somefield: -1 })
我尝试过这样的事情:
Product.findById(productId)
.sort( { requests: { _id: -1 } } )
但是出现以下错误:
TypeError:无效的排序值:{请求:[object Object]}
如果我在mongodb(罗盘)中按此顺序具有对象ID
_id:123456789
_id:987654321
我希望_id 987654321在列表中首先显示。
我现在甚至添加了一个日期字段,并尝试按该字段排序,但是顺序仍然与插入记录的顺序相同。
Product.findById(productId)
.sort( { 'requests.requestDt': 1} )
答案 0 :(得分:0)
如果传递了一个对象,则允许的值为asc,desc,ascending,descending,1和-1。
您要传递的值是一个对象{ _id: -1 }
,它只需要-1(或其他有效值之一)。如果将密钥更改为要排序项目的完整路径,那应该可以解决您的问题。
Product.findById(productId)
.sort( { 'requests._id': -1 } )
如果它不能按预期的方式工作,则还可以传递字符串而不是像这样的对象:Product.findById(productId)
.sort('requests._id')
或Product.findById(productId)
.sort('-requests._id')