PDI Kettle - 如何在 MongoDB 输出中为查询匹配指定 ObjectId
Posted
技术标签:
【中文标题】PDI Kettle - 如何在 MongoDB 输出中为查询匹配指定 ObjectId【英文标题】:PDI Kettle - How to specify ObjectId for query match in MongoDB Output 【发布时间】:2016-12-05 13:32:04 【问题描述】:使用 PDI Kettle MongoDB 输出,我正在尝试通过查询 _id (ObjectId) 字段来更新 mongodb 文档。 如果我将 _id 变量作为字符串传递给 MongoDB 输出步骤,则创建的最终查询看起来像
Modifier update query:
"_id" : "<string val>"
最终可能会变成类似
Modifier update query:
"_id" : "579c18b47f34b4330f85a981"
这可能导致查询未找到文档并且更新失败并出现错误“没有为修饰符更新操作指定要更新的字段!”
有什么方法可以指定如下查询?
"_id" : ObjectId(579c18b47f34b4330f85a981)
还是我看到错误是因为其他原因?
请找到“mongo 文档字段”选项卡的屏幕截图。
【问题讨论】:
到目前为止,它通过传递 Shard Keys 而不是 _id 来工作。但是,如果我必须按 _id 进行搜索,我将如何使用 PDI Kettle - MongoDB 输出组件在查询中指定它? 【参考方案1】:首先,您可以使用“javascript”步骤将“_id”值转换为 JSON 格式:
_id = ' "$oid": "' + _id + '" '
然后在“MongoDB 输出”步骤的最后一行中,您应该将 JSON 属性设置为 Y。
【讨论】:
以上是关于PDI Kettle - 如何在 MongoDB 输出中为查询匹配指定 ObjectId的主要内容,如果未能解决你的问题,请参考以下文章