मैंने अपने संग्रह में java.util.Date() के रूप में एक मान संग्रहीत किया है, लेकिन जब मैं दो विशिष्ट तिथियों के बीच मूल्य प्राप्त करने के लिए क्वेरी करता हूं, तो मैं सीमा के बाहर मूल्य प्राप्त करता हूं। यहाँ मेरी कोड है:जावा/मोंगोडीबी तिथि
BasicDBObject object = new BasicDBObject();
...
object.put("dateAdded", new java.util.Date());
collection.insert(object);
डालने के लिए
BasicDBObject query = new BasicDBObject();
query.put("dateAdded", new BasicDBObject("$gte", fromDate));
query.put("dateAdded", new BasicDBObject("$lte", toDate));
collection.find(query).sort(new BasicDBObject("dateAdded", -1));
क्वेरी करने के लिए जब मैं Wed Jul 27 16:54:49 EST 2011
और Wed Jul 27 16:54:49 EST 2011
(मूल रूप से fromDate = todate) के बीच क्वेरी, मैं Tue Jul 26 09:43:37 EST 2011
तरह तिथियों के साथ वस्तुओं मिलता है जो होना चाहिए निश्चित रूप से संभव नहीं है। मुझे यहां क्या समझ नहीं आ रहा है?
उत्कृष्ट टिप! तो मूल रूप से हर बार जब मैं अलग-अलग मानदंडों के साथ एक ही क्षेत्र में पूछताछ करना चाहता हूं तो मुझे निर्माता का सही उपयोग करना होगा? जानकार अच्छा लगा! आपको यह कहां से मिला? क्या कोई दस्तावेज है जिसके बारे में मुझे पता नहीं है? (चूंकि मोंगोडब आधिकारिक जावा ट्यूटोरियल काफी खराब है!) – Guillaume
@ गुलिअम बिल्कुल नहीं। आप 'बेसिक डीबीबीजेक्ट' भी बना सकते हैं और पॉप्युलेट कर सकते हैं, बिल्डर सिर्फ सहायक है जो इसे एक एकल संवर्धन के अंदर करने की अनुमति देता है। समस्या यह है कि 'DBObject' (जावा में सभी' मानचित्र 'की तरह) केवल अनन्य कुंजी हो सकती है। और जब आप एक ही कुंजी के साथ नया डालते हैं तो आप पिछले मान को खो देते हैं। इसके अलावा आधिकारिक ट्यूटोरियल में एक ही फ़ील्ड पर एकाधिक ऑपरेटरों का उपयोग करने के उदाहरण हैं: http://www.mongodb.org/display/DOCS/Java+Tutorial#JavaTutorial-GettingASetofDocumentsWithaQuery – pingw33n
आश्चर्यजनक रूप से उस प्रश्न का उत्तर ढूंढना मुश्किल है। –