load()函数mongo shell用于updatemany

时间:2018-12-10 23:02:01

标签: mongodb shell output load

当我通过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 }

1 个答案:

答案 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