sql >> Database >  >> NoSQL >> MongoDB

MongoDB zoek vergelijking met CurrentDate

Volgens uw vraag wilt u actuele documenten ophalen uit een mongodb-verzameling . In mongoDB-shell wanneer u new Date() . typt het geeft je de huidige datum met de tijd en deze waarde varieert altijd wanneer je dezelfde new Date() uitvoert dus waarschijnlijk is uw vraag als volgt:

db.collectionName.find({"start_date":new Date()}).pretty()

Maar ik denk dat deze zoekopdracht de documenten retourneert die in uw verzameling worden weergegeven, maar met dezelfde huidige Date waarde is mogelijk niet aanwezig in uw documenten, dus in dit geval moet u het volgende gebruiken

db.collectionName.find({"start_date":{"$lte":new Date()}}).pretty()

Of

db.collectionName.find({"start_date":{"$gte":new Date()}}).pretty()

In sommige gevallen Als u een exacte overeenkomst wilt vinden met year,month,day dan moet je aggregatie gebruiken met $year,$month,$dayOfMonth in $project zoals dit:

db.collectionName.aggregate({
  "$project": {
    "year": {
      "$year": "$date"
    },
    "month": {
      "$month": "$date"
    },
    "day": {
      "$dayOfMonth": "$date"
    }
  }
}, {
  "$match": {
    "year": new Date().getFullYear(),
    "month": new Date().getMonth() + 1, //because January starts with 0
    "day": new Date().getDate()
  }
})

In de bovenstaande aggregatiequery worden de documenten geretourneerd die overeenkomen met de huidige datum, zoals year,month,day van de huidige datum. Ook vervang je $match als

var currentDate = new Date()

 {
  "$match": {
    "year": currentDate.getFullYear(),
    "month": currentDate.getMonth() + 1, //because January starts with 0
    "day": currentDate.getDate()
  }
}


  1. Hoe MongoDB en Mongo-express draaien met docker-compose?

  2. proberen om gegevens in jade van mongodb weer te geven

  3. node.js MongoDB-query geeft geen resultaten

  4. Hoe gebruik ik C# om documenten in bestaande ingesloten documenten in te voegen?