从UNIX shell的mongodb生成一个特定的密钥对

时间:2016-07-14 20:55:12

标签: mongodb mongodb-query

使用mongodb并尝试从db中的集合中获取特定值。我可以使用

获得完整的导出
mongoexport --db database --collection name 

但输出是一个大文件,我正在尝试获取一组特定的密钥/对。

ex: "Name": "Value"

有几个名字,我只需要打印集合中的所有名称。

UNIX shell的命令语法是什么?

我看了this,但那是来自mongo shell。

感谢

3 个答案:

答案 0 :(得分:1)

要求yourCollection中的集合MyDatabase中的所有字段:

mongo --quiet 127.0.0.1/MyDatabase --eval 'printjson(db.yourCollection.find().toArray());'

仅请求name中收藏集yourCollection中的字段MyDatabase字段:

mongo --quiet 127.0.0.1/MyDatabase --eval 'printjson(db.yourCollection.find({},{"_id":0,"name":1}).toArray());'

答案 1 :(得分:0)

您还可以使用脚本执行并节省手动编写这些命令的时间。执行类似

的操作
mongo localhost:27017/test myfile.js

并在javascript文件中输入

db.name.findOne()
db.name().find({},{"_id":0,"Name":1}).toArray());

请参阅https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/和[How to execute mongo commands through shell scripts?

答案 2 :(得分:0)

如果您的目标是从数据库导出与特定条件匹配的文档,则可以使用mongoexport参数将查询传递给-q。例如:

mongoexport -d db -c coll -q '{"Name":"Value"}'

这将导出包含“Name”字段的所有文档,其值为“Value”。

如果您希望输出没有任何信息内容(例如导出文档的数量),也可以将--quiet参数传递给mongoexport

有关mongoexport工具的详情,请参阅https://docs.mongodb.com/manual/reference/program/mongoexport/