sql >> Databáze >  >> RDS >> Mysql

Mongodb :Dotaz založený na čase ve formátu ISODate. Co je v mém dotazu špatně?

Dotaz nepřináší žádné výsledky, protože $hour operátor se používá pouze v agregačním kanálu, nikoli find() dotaz. Takže ve vaší agregaci má váš kanál dva kroky, $project což vytvoří nové pole, které obsahuje hodinovou část a další fázi $match který se poté dotáže na dokumenty.

Vaše konečná operace agregace tedy bude vypadat takto:

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

db.collection.aggregate(pipeline);



  1. Jak mohu extrahovat části Django Postgres DateRangeField

  2. Aktualizujte příkaz pomocí klauzule with

  3. Hibernate postgresql/hsqldb Problém s nekompatibilitou sloupce TEXT

  4. Co znamená a co dělá MYSQLI_NUM?