我使用以下查询根据名为sortIndex的字段以升序填充MongoDB中的项目。
有时,尽管数据库中的项目没有sortIndex字段。通过以下查询,sortIndex为空的项目显示在顶部,我想知道如何使它们显示在底部。我需要两个查询吗?还是可以使用一个查询?
.populate({path: 'slides', options: { sort: { 'sortIndex': 'ascending' } } })
最佳答案
重复:How to keep null values at the end of sorting in Mongoose?
无论如何发布相同的解决方案...
我不确定该说的解决方案。我目前无法设置mongo db,因此无法进行测试,但是我认为您可以将<collection>.aggregate
以及$project
和$sort
一起使用来实现此目的。
示例代码:
db.inventory.aggregate(
[
{
$project: {
item: 1,
description: { $ifNull: [ "$amount", -1*(<mimimum value>)* ] }
}
},
{
$sort : {
amount : (-1 or 1 depending on the order you want)
}
}
]
)
希望这可以帮助 !!