Функция load () mongo для обновления - PullRequest
0 голосов
/ 11 декабря 2018

Я не получаю вывод, когда я вызываю update много через load ().Мой setVerboseShell (true)

Однако, когда я запускаю команду явно в приглашении оболочки, она прекрасно работает

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 голосов
/ 12 декабря 2018

В интерактивном режиме оболочка mongo будет отображать результаты последнего запуска команды.

В вашем примере возвращаемое значение 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);

Для получения дополнительной информации см. Запись сценариев для mongo оболочки в руководстве MongoDB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...