2016-03-13 9 views
12

मैं भविष्यवाणी का उपयोग कर अपने प्रश्नों को निष्पादित करने के लिए Spring Data's Querydsl integration का उपयोग कर रहा हूं।वसंत डेटा मोंगोब: QueryDsl के माध्यम से उत्पन्न कच्ची क्वेरी/कमांड कैसे डंप करें?

findAll(predicate, pageable) 

क्या वास्तविक कच्चे प्रश्न/आदेशों को निष्पादित करने का कोई तरीका है?

मैं भी इस सवाल का जवाब पर ध्यान दिया है और यह मेरे लिए काम कर रहा था .. Configure logging for the MongoDB Java driver

--Update-- मैं logging.level जोड़कर काम कर प्रवेश पाने के लिए प्रबंधित किया है

2016-03-23 ​​21:50: .org.mongodb.driver = application.properties (नहीं log4j.properties)

लेकिन फिर भी, मैं कच्चे क्वेरी कि प्रदर्शन किया जा रहा है नहीं देख सकते में डीबग : 56 DEBUG क्वेरी: 56 - क्वेरी पूर्ण हो गई 2016-03-23 21:50:56 DEBUG क्वेरी: 56 - कनेक्शन पर नेमस्पेस testdb.reservation की क्वेरी भेजना [कनेक्शन आईडी {स्थानीय वैल्यू: 4, सर्वर वैल्यू: 42631}] सर्वर ds046785.mongolab.com:39186

+0

मोंगोडीबी पक्ष पर, आप [प्रोफाइलर] (https://docs.mongodb.org/manual/administration/analyzing-mongodb-performance/#database-profiling) का उपयोग कर सकते हैं प्रोफाइलिंग सेट के साथ '2' तक आवृत्ति प्राप्त सभी प्रश्नों और आदेशों को लॉग इन करें। – Nicolas

+0

आखिरकार, मोंगो जावा ड्राइवर क्वेरी भेजने के लिए ज़िम्मेदार है, इसलिए आप अभी भी 'org.mongodb' लॉग स्तर को' DEBUG' पर सेट कर सकते हैं और जारी किए गए प्रश्न –

+0

देख सकते हैं मैंने अपनी लाइन 4j.properties में यह पंक्ति जोड़ दी है: log4j। logger.org.mongodb.driver = DEBUG लेकिन अभी भी कुछ भी नहीं है – user1955934

उत्तर

4

प्रोफाइलर को सेट करके प्रोफाइलर को सक्षम करें प्रोफ़ाइल मूल्य मोंगो शेल में निम्न आदेश का उपयोग:

db.setProfilingLevel(2) 

प्रोफाइलर के उत्पादन में इस आदेश का उपयोग करके देखा जा सकता है:

db.system.profile.find({ millis : { $gt : 100 } }) 

यह आदेश प्रदर्शित करता है सभी कार्यों को 100 से अधिक समय के मिलीसेकेंड

+0

मैंने कमांड db.setProfilingLevel (2) चलाया है और फिर मैं डीबी के खिलाफ अपनी क्वेरी चलाता हूं, लेकिन db.system.profile.find ({millis: {$ gt: 0}}) क्वेरी को वापस नहीं देखता – user1955934

+0

हाँ, यहां, सबसे अच्छा प्रोफ़ाइल को साफ करना होगा और अकेले 'db.system.profile.find()' चलाएं। आप इस तरह प्रोफाइल साफ़ कर सकते हैं: 'db.setProfilingLevel (0); db.system.profile.drop(); db.setProfilingLevel (2), ' – megalucio

संबंधित मुद्दे