2016-03-13 21 views
12

Özetleri kullanarak sorgularımı yürütmek için Spring Data's Querydsl integration kullanıyorum.Yay Verileri Mongodb: QueryDsl ile oluşturulan Ham Sorgu/Komutları Nasıl Dökebilirim?

findAll(predicate, pageable) 

Yürütülmekte olan gerçek ham sorguları/komutları atmanın bir yolu var mı?

Ben de bu sorunun cevabı baktım ve ben logging.level ekleyerek çalışma günlüğünü almak başardınız Configure logging for the MongoDB Java driver

--Update-- .. benim için çalışma değildi

2016-03-23 ​​21:50: application.properties (değil log4j.properties)

Ama yine de gerçekleştirilen ediliyor ham sorgu göremiyorum içinde .org.mongodb.driver = DEBUG : 56 DEBUG sorgu: 56 - Sorgu tamamlandı 2016-03-23 21:50:56 DEBUG sorgu: 56 - Bağlantıda ad alanı testdb.reservation gönderiliyor [connectionId {localValue: 4, serverValue: 42631}] to server ds046785.mongolab.com:39186

+0

MongoDB tarafında, [profiler] 'i (https://docs.mongodb.org/manual/administration/analyzing-mongodb-performance/#database-profiling),' 2 'olarak ayarlanan bir profil seviyesinde kullanabilirsiniz. tüm sorguları ve örnek aldığı komutları günlüğe kaydeder. – Nicolas

+0

Nihayetinde, mongo java sürücüsü sorguları göndermekle yükümlüdür, böylece 'org.mongodb' log düzeyini 'DEBUG' olarak ayarlayabilir ve verilen sorguları görebilmeniz için –

+0

bu satırı log4j.properties: log4j dosyasına ekledim. logger.org.mongodb.driver = DEBUG ancak hala kayıtlı bir şey yok – user1955934

cevap

4

Ayarlayıcıyı etkinleştirerek profilleyiciyi etkinleştirin Mongo kabuğunda aşağıdaki komutu kullanarak profil değeri:

db.setProfilingLevel(2) 

profilcisine çıktısı bu komutu kullanarak izlenebilir:

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

Bu komut görüntüler tüm işlemler daha uzun 100 milisaniye

+0

db.setProfilingLevel (2) komutunu çalıştırdım ve sonra da sorgumu db'ye karşı çalıştırıyorum, ancak db.system.profile.find ({millis: {$ gt: 0}}), sorguyu görüntüleyemiyor – user1955934

+0

için Evet, burada aynı, profili temizlemek ve 'db.system.profile.find()' komutunu çalıştırmak en iyisi olacak. Profili şu şekilde temizleyebilirsiniz: 'db.setProfilingLevel (0); db.system.profile.drop(); db.setProfilingLevel (2); – megalucio

İlgili konular