我有一个脚本:
mongo localhost:27017/MyDB --eval "db = connect("localhost:27017/SomeDB")"
mongo localhost:27017/MyDB --eval "db.copyDatabase(var1frombatch, var2frombatch)"
PAUSE
其中var1frombatch& var2frombatch从c#.net代码传递给这个批处理为%1,%2,我的问题是如何在我的--eval doe中使用变量?
我试过
mongo localhost:27017/MyDB --eval "db = connect("localhost:27017/SomeDB")"
mongo localhost:27017/MyDB --eval "db.copyDatabase('%1', '%2')"
PAUSE
但没有效果
答案 0 :(得分:1)
MongoDB具有在命令行上运行shell脚本的功能。 在您的情况下,一个用于多个操作的javascript比评估多个mongodb函数更好。
运行如下脚本:
%MONGODBDIR%mongo localhost:27017/SMSManagement --eval "var dbA = '%1', dbB = '%2'" %SCRIPTSDIR%\shellscript.js
在你的shellscript.js
中print("Copying database from " + "database:" + dbA + " to " + "database:" + dbB);
var result = db.copyDatabase(dbA, dbB)
printjson(result);
结果将输出如下:
{ "ok" : 1 }
有关此内容的更多信息,请参阅此处:https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/