Mungo Datum Vergleich

Meine Anwendung können die Benutzer zu erstellen, coupons.

Gutschein gültig in datefrom und dateto Zeitraum.

Die Sache ist, dass jeder Gutschein gilt für die ausgewählten Tage, nicht Stunden.

Beispielsweise seit Montag(2016-06-12) bis Dienstag(2016-06-13), also zwei Tage.

Wie sollte ich Sie lagern Daten auf server-Seite und dann vergleichen Sie es mit $gte Klausel im Mungo?

Danke 🙂

InformationsquelleAutor Jacek Wojcik | 2016-06-01



3 Replies
  1. 2

    Können Sie speichern Ablauf der Zeit als UNIX-timestamp. In Ihrem Mongoose Modell, das Sie verwenden können expiration : { type: Number, required: true}

    Wenn Sie user interface für die Erstellung von coupons Sie können dann konfigurieren Sie Ihre Datumsauswahl auf senden-Zeit im UNIX timestamp.

    Oder Wenn Sie Datums-Zeichenfolge, dann können Sie var timestamp = new Date('Your_Date_String');

    Und für die Berechnung der Tage, die Sie verwenden können,Moment JS. Mit diesem können Sie berechnen, starten Sie das Datum mit .startOf(); – und Ende-Datum mit .endOf();

    Timestamp zurück, die sich von Moment JS kann verwendet werden, für Mongoose Abfrage wie $gte : some_timestamp und $lte : some_timestamp

  2. 2
    { "_id" : 1, "couponStartDate" : ISODate("2016-06-26T18:57:30.012Z") }
    { "_id" : 2, "couponStartDate" : ISODate("2016-06-26T18:57:35.012Z") }
    
    
    var startDate = new Date(); //I am assuming this is gonna be provided 
    var validDate = startDate;
    var parametricDayCount = 2;
    validDate.setDate(validDate.getDate()+parametricDayCount);
    CouponModel.find({couponStartDate: {$gte: startDate, $lte: validDate}}, function (err, docs) { ... });
  3. 1

    Wenn Sie wollen validate den Gutschein, bevor Sie persistiert, können Sie eine max /min Wert für das Feld „Datum“:

    Siehe dieses Beispiel aus offiziellen Mungo Dokumentation DATUM validation:

    var s = new Schema({ dateto: { type: Date, max: Date('2014-01-01') })
    var M = db.model('M', s)
    var m = new M({ dateto: Date('2014-12-08') })
    m.save(function (err) {
      console.error(err) //validator error
      m.dateto = Date('2013-12-31');
      m.save() //success
    })

    Hinweis: verwenden Sie snake_case oder camelCase für Feldnamen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.