sql >> Database >  >> NoSQL >> MongoDB

Vraag op datum voor berichten die de afgelopen 24 uur zijn gemaakt

Om berichten te krijgen die in de afgelopen 24 uur zijn gemaakt, kun je de huidige tijd krijgen, 24 uur aftrekken en de waarde van de startdatum krijgen om te gebruiken in je datumbereikquery:

var start = new Date(new Date().getTime() - (24 * 60 * 60 * 1000));

Post.find({ "created_at": { "$gte": start } }).exec(callback);

Als je meer wilt weten over $gte , bekijk het volgende artikel:

Met de momentjs bibliotheek kan dit eenvoudig

var start = moment().subtract(24, 'hours').toDate();
Post.find({ "created_at": { "$gte": start } }).exec(callback);

U kunt ook een datum definiëren standaard met een functie in plaats van de pre hook middleware:

var post = new mongoose.Schema({
    text : String,
    created_at : {type : Date, default: Date.now, index : true},
    pos : {latitude: Number, longitude: Number},
    created_by : {type : Schema.Types.ObjectId, ref : "UserSchema"}
});


  1. Alleen subdocument opvragen en overeenkomend subdocument retourneren

  2. MongoDb 2.6.1 Fout:17444 - Verouderd punt is buiten bereik voor sferische zoekopdrachten

  3. Efficiënte paging in MongoDB met mgo.v2 en MongoDB> 4.2

  4. Mongoengine:ConnectionError:U heeft geen standaardverbinding gedefinieerd