Mongo Shell - บันทึกคอนโซล / ดีบัก


147

อาจเป็นคำถามที่โง่ ทดลองกับเปลือก Mongo

ฉันต้องการทำสิ่งที่ชอบ:

matt@linuxvm:~/mongodb-linux-i686-1.2.3/bin$ ./mongo
MongoDB shell version: 1.2.3
url: test
connecting to: test
Thu Feb 25 20:57:47 connection accepted from 127.0.0.1:37987 #3
type "help" for help
> function test() { debug.log("hello") }
> test()
Thu Feb 25 20:58:06 JS Error: ReferenceError: debug is not defined (shell):0

กล่าวอีกนัยหนึ่งฉันจะส่งออกไปยังคอนโซลได้อย่างไรเมื่อประเมินฟังก์ชัน JS จากภายใน Mongo shell ฉันต้องการสคริปต์ admin / populate ที่ฉันต้องการส่งออกข้อมูลบางอย่าง

ฉันได้ลอง console.log, debug.log, บันทึกสิ่งที่ชัดเจน ..

คำตอบ:


282

ฉันได้พบคำตอบมันเป็นเพียงแค่ print

print("sweetnesss");

93
printjson (สิ่งของ) มีประโยชน์มากขึ้นเล็กน้อยเมื่อจัดการกับวัตถุ
RobKohr

2

ฉันมักจะใช้สคริปต์เมื่อโต้ตอบกับเชลล์ดังนั้นฉันจึงเขียนวัตถุการบันทึกขั้นพื้นฐานที่ฉัน "โหลด (สคริปต์)" ลงในเชลล์แล้วใช้วัตถุการบันทึกเพื่อเรียกระดับการบันทึก (ดีบัก, ข้อมูล, เตือน, ข้อผิดพลาด) วัตถุ Logger ใช้ 'print' และ 'printjson' ที่เป็นแกนหลัก นอกจากนี้ยังมี sprintf พื้นฐานการเติมการจัดรูปแบบเรคคอร์ดและอื่น ๆ หากคุณกำลังจะทำงานสคริปต์ที่มีความสำคัญกับ mongodb ฉันขอแนะนำเส้นทางนี้ การดีบักสคริปต์ mongodb ให้ความรู้สึกเหมือนกลับไปสู่ช่วงเริ่มต้นของการเขียนโปรแกรมและการดีบักด้วยคำสั่งการพิมพ์ การบันทึกที่กำหนดค่าได้ทำให้สิ่งนี้ดีขึ้นเล็กน้อย แต่ฉันพลาดที่จะก้าวผ่านโค้ด


+1 สำหรับความคิดเห็นเกี่ยวกับการแก้ไขข้อบกพร่องการพิมพ์ไม่สามารถตกลงกันได้อีก คุณแชร์รหัสบันทึกใน GitHub หรือที่อื่น? ฉันกำลังพิจารณาที่จะทำเอง แต่ฉันยังไม่มีรหัสที่จะแชร์มาก ฉันแยกgithub.com/rsdoiel/mongo-modulesแต่ยังไม่ได้เพิ่มอะไรเลย
Mark Edington

ฉันจะพยายามขุดมันขึ้นมา
gbegley

gbegley: เยี่ยมมากดูเหมือนว่าจะมีประโยชน์สำหรับฉัน ขอบคุณที่คุณสละเวลามอบสิ่งนี้ให้กับชุมชน mongodb
Mark Edington
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.