Nitty-Gritty Detaljer
Gennemlæser late#_10.c. kilden. /a> , der er dybest set 2 tilfælde, når man laver sammenligninger, der involverer null :
- Hvis #2.hcantypes4.hcan a> af de BSON-elementer, der sammenlignes, er forskellige, kun lighedssammenligninger (
==,>=,<=) af null &undefined vil returneretrue; ellers enhver sammenligning mednullreturnererfalse.
Bemærk: Ingen anden BSON-type har den samme kanoniske type somnull. - Hvis #2.hcantypes4.hcan a> er de samme (dvs. begge elementer er
null), derefter $gt , $lt ) henviser til dokumentationen, som du oprindeligt linkede a> , hvilket indebærer, at sammenligningsoperatorerne bør arbejde mednull. Desuden sortering af forespørgsler (dvs. ,db.find().sort()) gør følg nøjagtigt den dokumenterede sammenlignings-/sorteringsadfærd.Dette er i det mindste inkonsekvent. Jeg synes, det ville være værd at indsende en fejlrapport til MongoDB's JIRA-websted .
Originalt svar:
Jeg tror ikke, at denne adfærd er en fejl.
Den generelle konsensus for Javascript er det
undefinedbetyder ikke tildelt mensnullbetyder tildelt, men ellers udefineret . Værdisammenligninger med udefineret, bortset fra lighed, giver ikke mening, i det mindste i matematisk forstand.Da BSON trækker meget fra JavaScript, gælder dette også for MongoDB.