Mongo Shell - Console / Registro de Depuração


147

Provavelmente uma pergunta idiota. Experimentando o shell Mongo.

Eu quero fazer algo como:

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

Em outras palavras, como posso gerar saída para o console ao avaliar funções JS no shell do Mongo. Pretendo algum script de administração / preenchimento que gostaria de exibir algumas informações detalhadas.

Eu tentei console.log, debug.log, registre os óbvios ..

Respostas:


281

Eu encontrei a resposta, é simplesmente print

print("sweetnesss");

93
printjson (coisa) é um pouco mais útil quando se lida com objetos
RobKohr

2

Normalmente, uso scripts ao interagir com o shell, por isso escrevi um objeto de Log básico que "carrego (script)" no shell e depois uso o objeto de Log para chamar os níveis de log (depuração, informação, aviso, erro). O objeto Logger usa 'print' e 'printjson' em seu núcleo. Além disso, ele contém sprintf básico, preenchimento, formatação de registro etc. Se você estiver realizando uma quantidade significativa de trabalho de script com o mongodb, recomendo esta rota. A depuração de scripts mongodb parece estar de volta à introdução à programação e depuração com instruções de impressão. O registro configurável torna isso um pouco melhor, mas eu realmente sinto falta de poder percorrer o código.


+1 no comentário sobre depuração de impressão, não posso concordar mais. Você está compartilhando seu código de registro no GitHub ou em algum outro lugar? Eu estava pensando em fazer isso sozinho, mas ainda não tenho muito código para compartilhar. I bifurcada github.com/rsdoiel/mongo-modules mas ainda não adicionou nada ainda.
Mark Edington

Vou tentar desenterrar isso.
gbegley

gbegley: Excelente, parece algo que será útil para mim. Agradecemos que você dedique um tempo para fornecer isso à comunidade mongodb.
Mark Edington
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.