Hav*_*ret 4 mongoose mongodb node.js
我正在尝试按日期顺序在集合中查找文档。这行得通,但是我null
在底部的日期字段中获得了带有文档的文档,我想要这些文档。
MyModel.find({ }, null, { sort: { date: -1 } }, function(err, models) {
// Models sorted with the "largest" date first and models with null dates last
});
Run Code Online (Sandbox Code Playgroud)
如果我将排序更改为首先要{ date: 1 }
获取文档null
,但是顺序相反,这是我不希望的。
我怎样才能达到预期的行为?
不幸的是,似乎没有简单的方法可以执行此操作,类似于SQL的“ nulls first” /“ nulls last”语法。此Mongo错误中提到了此功能:
https://jira.mongodb.org/browse/SERVER-153
使用自定义排序功能的较大功能进行循环的地方。(我真的希望将其分解为一个单独的功能请求,因为我认为仅实现null首/尾位应该比自定义排序功能容易得多,并且仍然可以提供很多价值。)
无论如何,暂时的解决方法是只查询现有查询之外的空值:
MyModel.find({ date: null });
MyModel.find({ date: { $ne: null } }).sort({ date: -1 } });
Run Code Online (Sandbox Code Playgroud)