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

Node.js til MongoDB:find efter dato

Du behøver ikke noget af denne indpakning. En dato er en dato :

var zeroth = {$or:[ {start: new Date(), {users:{$size:2}} ]}; 

Nu selvfølgelig, hvis disse "datoer" i dit dokument faktisk er "strenge" og ikke korrekt dato typer så er det dit problem. Og hvad du virkelig det er nødvendigt at rette disse værdier, så de er rigtige datoer.

Dette gælder for enhver sprogimplementering, hvor du skal arbejde med den oprindelige "dato"-type og lade driveren udføre konverteringen for dig.

Sådan afgøres, om feltet er en streng

Den klare forskel er, når du ser på et dokument i mongo-skallen, hvis det er en rigtig BSON-datotype, vil det se sådan ud:

"start": ISODate("2014-03-31T08:47:48.946Z"),

Hvis det ikke er tydeligt nok, er der $type operator, som du kan bruge i en forespørgsel som denne:

db.collection.find({ "start": { "$type": 2 } }).count()

Det er det også ikke MongoDB, der gør dette, hvis det er en streng, men temmelig dårlig implementering i applikationen eller importen, der var ansvarlig for at oprette dette. Det var det, pointerne i det første svar handlede om.




  1. Sådan laver du grundlæggende WATCH med StackExchange.Redis

  2. Arkitektur til Redis cache &Mongo for vedholdenhed

  3. Hvordan FILTERER jeg returnerede data mellem to datoer fra mongodb ved hjælp af en aggregering:match, opslag og projekt?

  4. hvordan kan jeg finde tekstsøgning i et array i mongodb