Mysql
 sql >> база данни >  >> RDS >> Mysql

Mongodb:Заявка въз основа на време във формат ISODate

Един подход е да използвате рамката за агрегиране , по-специално $redact оператор, който премахва потока на документа от съдържание въз основа на стойности в документа и неговите поддокументи. В зависимост от резултата от булев израз, документ може да бъде премахнат от потока, да бъде включен в потока, след като неговите поддокументи също са били проверени, или просто да бъде предаден изцяло в потока. Идеята зад $redact е да направи премахването на чувствителна информация от потока лесно.

Във вашия случай критерийният израз използва $cond оператор и $and булев оператор за изразяване на логическо И между времевите диапазони с операторите за сравнение $gt и $lt . Използвайте $hour оператор за дата, за да върне часа за датата поле като число между 0 и 23. Така окончателното ви обобщаване изглежда така:

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

Примерен резултат:

/* 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проектиране на база данни за първи път:свръхинженеринг ли съм?

  2. Синтаксис на MySQL UPDATE с множество таблици, използващи клауза WHERE

  3. MySQL GROUP BY/ORDER BY проблем

  4. MySQL:Присъединете се към заявка в множество бази данни, разположени на различни сървъри

  5. Компресиране на текст преди съхраняването му в базата данни