sql >> Database >  >> RDS >> Mysql

Mongodb:Query op basis van tijd in ISODate-indeling

Een benadering is het gebruik van het aggregatieraamwerk , in het bijzonder de $redact operator die de documentstroom van inhoud ontdoet op basis van waarden binnen het document en zijn subdocumenten. Afhankelijk van het resultaat van een booleaanse uitdrukking, kan een document uit de stream worden gesnoeid, in de stream worden opgenomen nadat ook de subdocumenten zijn gecontroleerd, of gewoon volledig in de stream worden doorgegeven. Het idee achter $redact is om het verwijderen van gevoelige informatie uit de stream gemakkelijk te maken.

In jouw geval gebruikt de criteria-expressie de $cond operator en de $and booleaanse operator om de logische AND tussen de tijdbereiken uit te drukken met de vergelijkingsoperatoren $gt en $lt . Gebruik de $hour datum operator om het uur terug te geven voor de date veld als een getal tussen 0 en 23. Uw uiteindelijke aggregatie ziet er dus als volgt uit:

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

Voorbeelduitvoer:

/* 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. Hoe een tabel in MySQL aan te sluiten met een tabel in Oracle

  2. Hoe gebruik je een Oracle Ref Cursor van C# ODP.NET als een ReturnValue-parameter, zonder een opgeslagen functie of procedure te gebruiken?

  3. Wijzig alle tabellen in de database

  4. Moet ik een klasse maken die SQLiteOpenHelper erft voor elke tabel in mijn database?