Я пытаюсь вызвать фрагмент javascript MongoDB с помощью переключателя командной строки mongo.exe --eval. Это отлично работает при запуске из командной строки Windows, но я хочу вызвать его из сценария Powershell следующим образом:
Invoke-Expression "& `"C:\MongoDB\bin\mongo.exe`" localhost:27017/mydb --eval `"db.mydata.update({}, {`$set : {v : 1}})`" --quiet"
В коллекции mydata только один документ, и я хочу установить его v
поле на 1
. Но приведенное выше выражение возвращает SyntaxError: недопустимый идентификатор свойства (shell eval): 1
при запуске из сценария Powershell и не обновляет документ.
Что еще больше сбивает с толку, так это то, что следующее работает, как ожидалось:
Invoke-Expression "& `"C:\MongoDB\bin\mongo.exe`" localhost:27017/mydb --eval `"printjson(db.mydata.findOne())`" --quiet"
Есть идеи, что я делаю неправильно?
Обновление:
Решение:
Invoke-Expression '& "C:\MongoDB\bin\mongo.exe" localhost:27017/mydb --eval "db.mydata.update({}, {`$set : {v : 2}})" --quiet'