Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

मोंगोडब:आईएसओडेट प्रारूप में समय पर आधारित प्रश्न

एक तरीका है एकत्रीकरण ढांचे का उपयोग करना , विशेष रूप से $redact ऑपरेटर जो दस्तावेज़ और उसके उप-दस्तावेजों के मूल्यों के आधार पर सामग्री के दस्तावेज़ स्ट्रीम को अलग करता है। एक बूलियन अभिव्यक्ति के परिणाम के आधार पर, किसी दस्तावेज़ को स्ट्रीम से काटा जा सकता है, उसके उप-दस्तावेज़ों की भी जाँच के बाद स्ट्रीम में शामिल किया जा सकता है, या स्ट्रीम में पूर्ण रूप से पारित किया जा सकता है। $redact के पीछे का विचार संवेदनशील जानकारी को स्ट्रीम से निकालना आसान बनाना है।

आपके मामले में, मानदंड अभिव्यक्ति का उपयोग करती है $cond ऑपरेटर और $and तुलना ऑपरेटरों के साथ तार्किक और समय सीमा के बीच व्यक्त करने के लिए बूलियन ऑपरेटर $gt और $lt . $hour का इस्तेमाल करें कोड> दिनांक ऑपरेटर date के लिए घंटे वापस करने के लिए 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. विजेताओं के लिए क्वेरी MSQL, SELECT का उपयोग करके xth स्थान से शुरू करें

  2. पीडीओ और माईएसक्यूएल के साथ अद्यतन क्वेरी

  3. PHP / MySQL - वास्तविक जीपीएस निर्देशांक से 500 मीटर के दायरे में सभी आइटम खोजें

  4. फंक्शन bind_param() एक गैर-ऑब्जेक्ट पर | पीएचपी MySQL

  5. क्या ट्रिगर से नई और पुरानी तालिकाओं को MySQL में एक प्रक्रिया में पास करना संभव है?