MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB _id . के आधार पर प्रति मिनट नए दस्तावेज़ों की संख्या की गणना करता है

आप इसे वास्तव में एम/आर के साथ कर सकते हैं। getTimestamp() एम/आर में काम करता है क्योंकि यह सर्वर पर जावास्क्रिप्ट में चलता है, इससे कोई फर्क नहीं पड़ता कि आपकी क्लाइंट भाषा PHP है या पायथन:

map = function() {
    var datetime = this._id.getTimestamp();

    var created_at_minute = new Date(datetime.getFullYear(),
                                     datetime.getMonth(),
                                     datetime.getDate(),
                                     datetime.getHours(),
                                     datetime.getMinutes());
    emit(created_at_minute, {count: 1});
}

reduce = function(key, values) {
    var total = 0;
    for(var i = 0; i < values.length; i++) { total += values[i].count; }
    return {count: total};
}

db.so.mapReduce( map, reduce, { out: 'inline' } );
db.inline.find();

जो कुछ इस तरह आउटपुट करता है:

{ "_id" : ISODate("2013-08-05T15:24:00Z"), "value" : { "count" : 9 } }
{ "_id" : ISODate("2013-08-05T15:26:00Z"), "value" : { "count" : 2 } }

हालांकि, मेरा सुझाव है कि आप एम/आर का उपयोग न करें लेकिन इसके बजाय एकत्रीकरण ढांचे की ओर मुड़ें क्योंकि यह बहुत तेज़ है क्योंकि यह अनुक्रमणिका का उपयोग कर सकता है और समवर्ती रूप से चल सकता है। अभी, A/F के पास ObjectID से टाइमस्टैम्प निकालने के लिए कोई ऑपरेटर नहीं है। फ़ील्ड अभी तक तो आप करेंगे सम्मिलन के समय भी समय को स्टोर करना होगा। एफ.ई. इस तरह के दस्तावेज़ों के साथ:

db.so.drop();
db.so.insert( { date: new ISODate( "2013-08-05T15:24:15" ) } );
db.so.insert( { date: new ISODate( "2013-08-05T15:24:19" ) } );
db.so.insert( { date: new ISODate( "2013-08-05T15:24:25" ) } );
db.so.insert( { date: new ISODate( "2013-08-05T15:24:32" ) } );
db.so.insert( { date: new ISODate( "2013-08-05T15:24:45" ) } );
db.so.insert( { date: new ISODate( "2013-08-05T15:25:15" ) } );
db.so.insert( { date: new ISODate( "2013-08-05T15:25:15" ) } );

db.so.aggregate( [
    { $group: {
        _id: {
            y: { '$year': '$date' },
            m: { '$month': '$date' },
            d: { '$dayOfMonth': '$date' },
            h: { '$hour': '$date' },
            i: { '$minute': '$date' },
        },
        count: { $sum : 1 }
    } } 
] );

कौन सा आउटपुट:

{
    "result" : [
        {
            "_id" : {
                "y" : 2013,
                "m" : 8,
                "d" : 5,
                "h" : 15,
                "i" : 25
            },
            "count" : 2
        },
        {
            "_id" : {
                "y" : 2013,
                "m" : 8,
                "d" : 5,
                "h" : 15,
                "i" : 24
            },
            "count" : 5
        }
    ],
    "ok" : 1
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवला - _id . के साथ वस्तुओं की सरणी के बजाय _ids की सूची प्राप्त करें

  2. ClusterControl रनटाइम कॉन्फ़िगरेशन विकल्प

  3. नीला फ़ंक्शन से MongoDB से कनेक्ट करना

  4. MongoDB C# के साथ खोजें और संशोधित करें

  5. क्या मोंगोडब के बिना _id स्ट्रिंग्स जैसे मोंगोडब बनाने का कोई तरीका है?