sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB sammenligningsoperatorer med null

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 :

  1. Hvis #2.hcantypes af de BSON-elementer, der sammenlignes, er forskellige, kun lighedssammenligninger (== , >= , <= ) af null &undefined vil returnere true; ellers enhver sammenligning med null returnerer false .
    Bemærk: Ingen anden BSON-type har den samme kanoniske type som null .
  2. Hvis #2.hcantypes 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 med null . 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 undefined betyder ikke tildelt mens null betyder 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.




  1. teknikker til lagring af biblioteker i mongoDB's system.js

  2. Meget mærkeligt Mongoose/MongoDB-problem, når du kører MEAN-websted på Openshift

  3. Kan MongoDB bruge et indeks, når man tjekker for eksistensen af ​​et felt med $exists-operatoren?

  4. Saml og opdater MongoDB