MongoDB脚本的基础是什么?
我认为脚本将结束.js
,我们使用它来运行它mongo try.js
但是,如果我把
print(db.foo.find())
在try.js
和使用mongo try.js
它会说
MongoDB shell version: 1.6.1 connecting to: test DBQuery: test.foo -> undefined
如果我通过键入mongo
和键入使用交互式shell
> db.foo.find() { "_id" : ObjectId("4c7a73428261000000003a7e"), "a" : 1 } > print(db.foo.find()) DBQuery: test.foo -> undefined
这{a : 1}
是我之前插入的东西db.foo.insert({a:1})
做MongoDB脚本的正确方法是什么,以及如何像Ruby irb
或Python 一样打印出来IDLE
?谢谢.(Ruby puts a.inspect
或者p a
都可以打印出a
通常的整个结构(所有的变量名和值a
))
alert(db.foo.find())
并且console.log(db.foo.find())
也不会工作.
外部脚本文件在shell上下文之外执行.
的db.foo.find()
数据库命令只返回一个光标; 它本身不打印任何东西.从shell发出命令时,shell将迭代游标并打印结果.从外部脚本文件运行命令时,不会打印任何内容.
该print()
命令将打印出对象的字符串表示形式.在你的情况下,它是光标:
> print(db.foo.find()) DBQuery: test.foo -> undefined
如果需要打印查询结果,则必须在脚本文件中迭代光标并打印每个结果,类似于shell的作用:
function printResult (r) { print(tojson(r)) } db.foo.find().forEach(printResult)
有一个用于打印json对象的内置函数.
只需附加.forEach(printjson)
到函数调用的末尾.
db.foo.find().forEach(printjson);