Sté*_*ane 6 ruby mongodb mongoid
真的没什么可说的,而不是问题中的内容.
使用mongoid:
People.asc(:age)
Run Code Online (Sandbox Code Playgroud)
我先得到零值.
有没有办法总是最后返回nil ,或者告诉mongodb将nil视为非常高?
完全像在这里sql中的相同问题的答案
我很确定 MongoDB 的答案是“不”。无法提供自定义排序功能,您只能提供用于排序的键。有对自定义排序功能的请求,他们甚至提到了您的特定用例:
用于自定义排序/索引的 javascript 排序助手
[...]
这可以用于在字段上按字母顺序排序,并将具有空值的文档放在结果集的末尾吗?
[...]
@nick - 是的
因此,您并不是唯一一个想要将nulls 放在一端或另一端的人。
我认为你现在能做的最好的事情就是用 Ruby 来做,如下所示:
nils, not_nils = People.asc(:age).partition { |p| p.age.nil? }
people = not_nils + nils
Run Code Online (Sandbox Code Playgroud)
我不使用 Mongoid,但大概asc会给你一个 Enumerable,如果没有,那么也许你可以to_a在其中插入一个。当然,如果你正在分页,这种黑客行为是没有用的。
| 归档时间: |
|
| 查看次数: |
2550 次 |
| 最近记录: |