【问题标题】:PDI Kettle - How to specify ObjectId for query match in MongoDB OutputPDI Kettle - 如何在 MongoDB 输出中为查询匹配指定 ObjectId
【发布时间】: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 输出组件在查询中指定它?

标签: mongodb mongodb-query kettle pdi


【解决方案1】:

首先,您可以使用“Javascript”步骤将“_id”值转换为 JSON 格式:

_id = '{ "$oid": "' + _id + '" }'

然后在“MongoDB 输出”步骤的最后一行中,您应该将 JSON 属性设置为 Y。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多