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 mednull
returnerarfalse
.
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
undefined
betyder ej tilldelad medannull
betyder 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.