Проблема с вызовом обновления MongoDB с помощью переключателя shell --eval из Powershell

Я пытаюсь вызвать фрагмент 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'
5
задан Joe Waller 25 January 2012 в 14:23
поделиться