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

नेवला तिथि फ़िल्टर

अपनी क्वेरी के लिए वास्तविक दिनांक वस्तु का उपयोग करें, न कि स्ट्रिंग जैसा कि आप वर्तमान में कर रहे हैं। क्योंकि मोंगो तारीखों को ISODate सहायक और अंतर्निहित बीएसओएन (मोंगो द्वारा मूल रूप से उपयोग किए जाने वाले स्टोरेज डेटा प्रारूप) में एक समर्पित दिनांक प्रकार यूटीसी डेटाटाइम है जो 64 बिट (इसलिए, 8 बाइट) हस्ताक्षरित पूर्णांक है जो यूनिक्स समय युग के बाद से मिलीसेकंड को दर्शाता है, आपकी क्वेरी कुछ भी वापस नहीं करती है यह आईएसओ स्वरूपित स्ट्रिंग के साथ मोंगो में दिनांक फ़ील्ड की तुलना करेगा।

तो, toISOString() को छोड़ दें रूपांतरण और दिनांक वस्तु का उपयोग करें:

if (data.date) {
    const date = new Date();
    const dateRange = data.date.slice(0, -1); // strip the "d" from "7d"
    date.setDate(date.getDate() - dateRange);
    query.start = { $lte: date };
    console.log(query);
}

Call.find(query, function (error, docs) {
    if (error) callback(error, null);
    callback(null, docs);    
});

बेहतर अभी तक, आप momentjs का उपयोग कर सकते हैं प्लगइन जिसमें एक बहुत ही सहज और आसान डेटाटाइम मैनिपुलेशन एपीआई है। एक तरीका जिसका आप उपयोग कर सकते हैं वह है subtract() दिनांक वस्तु प्राप्त करने के लिए कार्य करें n दिनों पहले की संख्या:

if (data.date) {    
    const dateRange = data.date.slice(0, -1); // strip the "d" from "7d"
    const date = moment().subtract(dateRange, "days");
    query.start = { $lte: date };
    console.log(query);
}

Call.find(query, function (error, docs) {
    if (error) callback(error, null);
    callback(null, docs);    
});



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. आईडी सहित मोंगोडब संग्रह में सभी ऑब्जेक्ट्स को कैसे पुनर्प्राप्त करें?

  2. स्प्रिंग-डेटा के माध्यम से MongoDB में बड़े संग्रह पर पुनरावृति करें

  3. स्प्रिंग-मोंगो-1.0.xsd त्रुटि

  4. मोंगो-हडूप कनेक्टर का उपयोग करके हाइव को मोंगोडीबी से जोड़ने में असमर्थ

  5. Mongoimport का उपयोग करके MongoDB में CSV डेटा को एक सरणी के रूप में आयात करें