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

Mongodb :Dotaz založený na čase ve formátu ISODate

Jedním z přístupů je použití rámce agregace , zejména $redact operátor, který zbavuje tok dokumentů obsahu na základě hodnot v dokumentu a jeho poddokumentech. V závislosti na výsledku booleovského výrazu může být dokument odstraněn ze streamu, může být zahrnut do proudu poté, co byly zkontrolovány i jeho dílčí dokumenty, nebo může být do streamu předán celý. Myšlenka za $redact je usnadnit odstraňování citlivých informací ze streamu.

Ve vašem případě výraz kritéria používá $cond operátor a $and booleovský operátor k vyjádření logického AND mezi časovými rozsahy s operátory porovnání $gt a $lt . Použijte $hodinu operátor date, který vrátí hodinu pro date pole jako číslo mezi 0 a 23. Vaše konečná agregace tedy vypadá takto:

db.collection.aggregate([
    {
        "$redact": {
            "$cond": {
                "if": { 
                    "$and": [
                        { "$gt": [ {"$hour": "$date"}, 4] },
                        { "$lt": [ {"$hour": "$date"}, 8] }
                    ]                 
                },
                "then": "$$KEEP",
                "else": "$$PRUNE"
            }
        }        
    }
])

Ukázkový výstup:

/* 0 */
{
    "result" : [ 
        {
            "_id" : ObjectId("56404450472fe25cc6b85886"),
            "date" : ISODate("2015-11-09T05:58:19.474Z")
        }, 
        {
            "_id" : ObjectId("56404450472fe25cc6b85887"),
            "date" : ISODate("2014-10-25T07:30:00.241Z")
        }
    ],
    "ok" : 1
}



  1. Jak nahrát obrázky do databáze MySQL pomocí kódu PHP

  2. Dynamický kurzor v uložené proceduře

  3. Přístup odepřen uživateli 'root'@'localhost' pomocí PHPMyAdmin

  4. Pořiďte si svůj vlastní cloud dostupný pro DigitalOcean