使用mongodb并尝试从db中的集合中获取特定值。我可以使用
获得完整的导出mongoexport --db database --collection name
但输出是一个大文件,我正在尝试获取一组特定的密钥/对。
ex: "Name": "Value"
有几个名字,我只需要打印集合中的所有名称。
UNIX shell的命令语法是什么?
我看了this,但那是来自mongo shell。
感谢
答案 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/。