sql >> Databasteknik >  >> RDS >> Mysql

Mongodb :Fråga baserad på tid i ISODate-format. Vad är fel i min fråga?

Frågan ger inga resultat eftersom $timme operatorn tillämpas endast i aggregeringspipelinen, inte find() fråga. Så i din aggregering har din pipeline två steg, $project vilket skapar ett nytt fält som innehåller timdelen och nästa steg $match som sedan frågar efter dokumenten.

Din slutliga aggregeringsoperation blir så här:

var pipeline = [
    {
        "$project": {
            "hour": { "$hour": "$date" },
            "date": 1
        }
    },
    {
        "$match": {
            "hour": { "$gt": 4,  "$lt": 8}
        }
    }
]

db.collection.aggregate(pipeline);



  1. PostgreSQL:ordning efter kolumn, med specifikt NON-NULL-värde LAST

  2. PHP MySQL hur man korrekt lagrar / undkommer sträng

  3. Utlösa en trigger efter uppdatering av specifika kolumner i MySQL

  4. Varför misslyckas denna trigger? Det står ogiltig identifierare