Nitty-Gritty Detaljer
Läser igenom , det finns i princip två fall när man gör jämförelser som involverar null :
- Om #onicaltypes4.h"> a> av BSON-elementen som jämförs är olika, endast jämställdhetsjämförelser (
==,>=,<=) av null &undefined returnerartrue; annars någon jämförelse mednullreturnerarfalse.
Obs! Ingen annan BSON-typ har samma kanoniska typ somnull. - Om #onicaltypes4.h"> a> är desamma (dvs båda elementen är
null), sedan alparesaV kallas. Förnull, detta returnerar bara skillnaden mellan $gt , $lt ) refererar till dokumentationen som du ursprungligen länkade a> , vilket innebär att jämförelseoperatorerna bör arbeta mednull. Dessutom sortering av frågor (dvs. ,db.find().sort()) gör följ noggrant det dokumenterade jämförelse-/sorteringsbeteendet.Detta är åtminstone inkonsekvent. Jag tycker att det skulle vara värt att skicka in en felrapport till MongoDB:s JIRA-webbplats .
Ursprungligt svar:
Jag tror inte att det här beteendet är en bugg.
Den allmänna konsensus för Javascript är det
undefinedbetyder ej tilldelad medannullbetyder tilldelad men annars odefinierad . Värdejämförelser med odefinierade, bortsett från jämlikhet, är inte vettiga, åtminstone i en matematisk mening.Med tanke på att BSON drar mycket från JavaScript, gäller detta även MongoDB.