我搜索并發現可以使用--eval,但這在 CLI 中不起作用,因為您在 mongodb shell 中。
例如我不能show databases用--eval
mongo -u root -p pass --eval "show dbs"
MongoDB shell version v4.2.18
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("80746969-2c86-45dc-603f-7f98882e578c") }
MongoDB server version: 4.2.18
2022-03-10T15:33:22.711 0000 E QUERY [js] uncaught exception: SyntaxError: unexpected token: identifier :
@(shell eval):1:5
2022-03-10T15:33:22.711 0000 E - [main] exiting with code -4
我希望有類似mysql的東西mysql -e "show databases"
uj5u.com熱心網友回復:
您可以執行以下操作:
echo 'db.testCollection.findOne({ "_id": "xxx" })' | mongo --port 27017 testDatabase --authenticationDatabase=admin -u myUser -p <myPassWord> > output.txt
但是還有很多其他方法可以做到這一點,檢查這張票已經描述了多個選項......
uj5u.com熱心網友回復:
show databases是一個特殊的命令。相反,您可以使用listDatabases管理命令:
mongo "mongodb://root:pass@localhost:27017/?authSource=admin" --norc --quiet --eval "db.adminCommand( { listDatabases: 1 } ).databases"
uj5u.com熱心網友回復:
這似乎是一個有效的解決方法:
echo "show dbs" | mongo -u root -p pass
回報:
MongoDB shell version v4.2.18
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("") }
MongoDB server version: 4.2.18
admin 0.000GB
config 0.000GB
local 0.025GB
bye
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/440585.html
