sql >> Databasteknik >  >> NoSQL >> MongoDB

Kan mongo returnera dokument med tomma/saknade fält i slutet i asc-ordning?

När du returnerar resultatet för db.jason.find().sort({"rank":1}) , kommer MongoDB att sortera dokumenten efter "rank"-typ och sedan efter "rank"-värde. I syfte att sortera, behandlar MongoDB dokument där ett fält saknas som att de har en NULL-typ för det fältet. NULL-typen ordnas före numeriska typer, och detta kan inte ändras (se http://docs.mongodb.org/manual/reference/method/cursor.sort/ för den inbyggda sorteringsordningen). Jag skulle föreslå att du istället konstruerar två frågor (en för dokument som innehåller "rank", och en för dokument utan "rank") och slår samman resultaten i din ansökan. Men om du behöver behålla detta en enda fråga, måste du ställa in "rank" i alla dokument för att generera den ordning du önskar (till exempel genom att använda ett sentinelvärde med en typ som sorterar efter numeriska typer).




  1. Hitta element baserat på två värden

  2. Lång ackumulator istället för Double i MongoDB group() funktion

  3. Många till många uppdaterar i MongoDB utan transaktioner

  4. 3 sätt att välja raden med minimivärdet i SQL