当我通过load()调用update很多时,我没有得到输出。我的setVerboseShell(true)
但是,当我在shell提示符中显式运行命令时,一切正常
MongoDB Enterprise > load('/opt/app/mongo/test.js') true
MongoDB Enterprise > setVerboseShell(true)
MongoDB Enterprise > load('/opt/app/mongo/test.js') true
MongoDB Enterprise > db.organizations.updateMany({"_id" : {$in : [ "120300007","160800001","175100009","193000031","201700008","235500001","237600001","24600001","272500006","278200081"]}},{$unset : {"asenodMigrationDetails.aseMigrationStatus" : ""}});
{ "acknowledged" : true, "matchedCount" : 3, "modifiedCount" : 0 }
答案 0 :(得分:0)
在交互模式下,mongo
shell将显示上次运行命令的结果。
在您的示例中,返回值load()
是一个布尔值,指示从指定文件成功加载和评估JavaScript。
如果要从test.js
中的命令输出结果,则需要显式调用print()
或printjson()
。
您的test.js
应该看起来像:
var result = db.organizations.updateMany(
{"_id" : {
$in : ["120300007","160800001","175100009","193000031","201700008","235500001","237600001","24600001","272500006","278200081"]}},
{$unset : {"asenodMigrationDetails.aseMigrationStatus" : ""}}
)
printjson(result);
有关更多信息,请参见MongoDB手册中的Write Scripts for the mongo
shell。