mongodb - 使用来自 Powershell 的 shell --eval 开关调用 MongoDB 更新时遇到问题

标签 mongodb powershell

我正在尝试使用 mongo.exe --eval 命令行开关调用 MongoDB javascript 片段。从 Windows 命令行运行时,这可以正常工作,但我想从 Powershell 脚本中调用它,如下所示:

Invoke-Expression "& `"C:\MongoDB\bin\mongo.exe`" localhost:27017/mydb --eval `"db.mydata.update({}, {`$set : {v : 1}})`" --quiet"

mydata 集合中只有一个文档,我想将其 v 字段设置为 1。但是,上面的表达式在从 Powershell 脚本运行并且不更新文档时返回 SyntaxError: invalid property id (shell eval):1

让这更令人困惑的是,以下内容按预期工作:

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'

最佳答案

尝试在 eval 语句周围使用单引号而不是双引号。

关于mongodb - 使用来自 Powershell 的 shell --eval 开关调用 MongoDB 更新时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9003778/

相关文章:

spring - 如何在 Spring 或 Spring Boot 中以编程方式在 Spring Mongo 数据中创建复合索引?

javascript - 需要将逗号分隔的字符串转换成json字符串

c# - 如何通过Linq查询MongoDB中的BsonExtraElements

node.js - 是否可以在 Mongoose 中创建多选枚举

powershell - 测试数据库连接

azure - 是否可以通过单用户登录提示使用 MFA 对 Connect-AzAccount 和 Connect-AzureAD 进行身份验证?

powershell - 没有确保属性的 Windows PowerShell DSC

powershell - 使用 Powershell 检测 GPT 和 MBR 分区

javascript - 使用 Async 和 MongoDb 按顺序填充集合文档

mongodb - 在mongodb中进行分组时如何使用条件计数?