MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie kann ich sortieren, dass Nullen zuletzt in Mongodb bestellt werden?

Vielleicht können Sie Aggregation und ein künstlich hohes Enddatum verwenden:

c = db.foo.aggregate([
{$project: {
            next_time: 1,
            nlt: { $ifNull: [ "$next_time", new ISODate("9000-01-01") ] }
  }     
}
,
{$sort: { "nlt": 1}}
                  ]);
c.forEach(function(r) { printjson(r); });

Wenn der Großteil des Materials Nullen enthält und Sie sich überhaupt nicht mit diesen Dokumenten befassen möchten, filtern Sie sie alternativ heraus und geben Sie einfach $sort ein der Rest:

db.foo.aggregate([
{$match: {"nt": {$exists: true}}}
,
{$sort: { "nt": 1}}
                 ]);