mongo find()没有使用eval生成输出

时间:2016-08-03 13:35:52

标签: mongodb

我正在尝试在mongodb集合中“查找所有”资源。

我可以获得好点数:

mongo ip:port/database1 -u correctusername -p correctpassword 
--authenticationDatabase admin --eval "db.getCollection('collection_123').count()"

但是当我尝试调整它时,

mongo ip:port/database1 -u correctusername -p correctpassword 
--authenticationDatabase admin --eval "db.getCollection('collection_123').find()"

它产生

MongoDB shell version: 2.4.0
connecting to: ip:port/database1
DBQuery: database1.collection_123 -> { }

我也试过find({})

似乎没有身份验证错误。第一个查询起作用并产生计数。我也可以

mongo ip:port/database1 -u correctusername -p correctpassword 
--authenticationDatabase admin

进入mongo shell并

db.getCollection('collection_123').find()

并查看正确的json输出。

1 个答案:

答案 0 :(得分:1)

我找到的唯一方法是

mongo  ip:port/database1 -u correctusername -p correctpassword
--authenticationDatabase admin --eval "db.collection.find().forEach(printjson)"

但输出与shell中的输出不同,因为其他命令不起作用,如排序或限制。

<强>更新

更好的解决方案是

mongo  ip:port/database1 -u correctusername -p correctpassword
--authenticationDatabase admin --eval "printjson(db.collection.find().toArray())"