sql >> Database >  >> NoSQL >> MongoDB

Hoe kan ik sorteren dat nulls als laatste in mongodb worden besteld?

Misschien kunt u aggregatie en een kunstmatig hoge einddatum gebruiken:

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); });

Als alternatief, als het grootste deel van het materiaal nulls heeft en je wilt helemaal niet met die documenten te maken hebben, filter ze dan uit en gewoon $sort de rest:

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


  1. Een overzicht van de Percona MongoDB Kubernetes-operator

  2. Enkele kleine (minder dan 1 MB) bestanden opslaan met MongoDB in NodeJS ZONDER GridFS

  3. Test lege string in mongodb en pymongo

  4. Mangoest &uniek veld