J'essaie d'appeler un fragment javascript MongoDB à l'aide du commutateur de ligne de commande mongo.exe --eval. Cela fonctionne très bien lorsqu'il est exécuté à partir de la ligne de commande Windows, mais je veux l'appeler à partir d'un script Powershell comme ceci:Problème d'invocation de la mise à jour MongoDB à l'aide du shell --eval de Powershell
Invoke-Expression "& `"C:\MongoDB\bin\mongo.exe`" localhost:27017/mydb --eval `"db.mydata.update({}, {`$set : {v : 1}})`" --quiet"
Il n'y a qu'un seul document dans la collection monTableau, et je veux définir son champ v
à 1
. Mais l'expression ci-dessus renvoie SyntaxError: invalid property id (shell eval):1
lorsqu'elle est exécutée à partir d'un script Powershell et ne met pas à jour le document.
Ce qui est encore plus déroutant est que le suivi fonctionne comme prévu:
Invoke-Expression "& `"C:\MongoDB\bin\mongo.exe`" localhost:27017/mydb --eval `"printjson(db.mydata.findOne())`" --quiet"
Toutes les idées que je pourrais faire mal?
Mise à jour:
La solution:
Invoke-Expression '& "C:\MongoDB\bin\mongo.exe" localhost:27017/mydb --eval "db.mydata.update({}, {`$set : {v : 2}})" --quiet'
Ce fut tout. Merci! –