Я пытаюсь вызвать фрагмент 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: invalid property id (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'