db.jason.find().sort({"rank":1})
{ "_id" : ObjectId("51ae517372779b7eeeb81342"), "name" : "jason" }
{ "_id" : ObjectId("51ae517372779b7eeeb81343"), "name" : "jason" }
{ "_id" : ObjectId("51ae513772779b7eeeb8133a"), "name" : "jason", "rank" : 0 }
{ "_id" : ObjectId("51ae513772779b7eeeb8133b"), "name" : "jason", "rank" : 1 }
{ "_id" : ObjectId("51ae513772779b7eeeb8133c"), "name" : "jason", "rank" : 2 }
Run Code Online (Sandbox Code Playgroud)
我希望没有等级的文件可以得出排序与开始它...但是也保持按顺序排列的项目.这是可能的,还是我应该用字符串或高数字(如99999)来默认空的?
返回结果时db.jason.find().sort({"rank":1})
,MongoDB将按"rank"类型排序文档,然后按"rank"值排序.出于排序顺序的目的,MongoDB将缺少字段的文档视为具有该字段的NULL类型.NULL类型在数字类型之前排序,并且无法更改(有关内置类型排序顺序,请参阅http://docs.mongodb.org/manual/reference/method/cursor.sort/).我建议改为构造两个查询(一个用于包含"rank"的文档,另一个用于没有"rank"的文档)并在应用程序中合并结果.但是,如果您需要保留一个查询,那么您需要在所有文档中设置"rank"以生成所需的顺序(例如,
归档时间: |
|
查看次数: |
1622 次 |
最近记录: |