如果我基于包含缺失值的列进行排序,则如果排序是升序的,则缺失值将位于顶部。如何确保缺失值总是被推到底部,无论是升序还是降序?
svmlkihl1#
有点厚脸皮,但你可以“临时”分配一个值,将项目强制到列表的底部,然后将其过滤掉:
db.foo.aggregate([ {$addFields: { 'val':{$ifNull: [ '$val', 99999999999999 ]} }} ,{$sort: {'val':1}} ,{$match: {'val':{$ne:99999999999999}}} ]);
1条答案
按热度按时间svmlkihl1#
有点厚脸皮,但你可以“临时”分配一个值,将项目强制到列表的底部,然后将其过滤掉: