我使用以下查询根据名为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)
         }
      }
   ]
)

希望这可以帮助 !!

07-21 13:07