2016-07-31 1 views
1

Использование PDI Kettle MongoDB Output, я пытаюсь обновить документ mongodb, запросив поле _id (ObjectId). Если я передать переменную _id в качестве строки на этапе вывода MongoDB, окончательный запрос, который будет создаваться выглядитPDI Kettle - Как указать ObjectId для сопоставления запросов в MongoDB Output

Modifier update query: 

{ 
    "_id" : "<string val>" 
} 

, которые могут трансформироваться в конце концов что-то вроде

Modifier update query: 

{ 
    "_id" : "579c18b47f34b4330f85a981" 
} 

Это может быть причиной запрос, не обнаруживающий документ, и обновление не с ошибкой "Для операции обновления модификатора не указаны поля для обновления!"

Есть ли способ указать, запрос, как показано ниже?

{"_id" : ObjectId(579c18b47f34b4330f85a981)} 

Или я вижу ошибку по другой причине?

Пожалуйста, найдите скриншот вкладки полей «mongo document fields». enter image description here

+0

На данный момент он работает, передавая ключи Shard вместо _id. Но все же, если мне пришлось искать _id, как бы я указал его в запросе, используя компонент PDI Kettle - MongoDB Output? – Mahesh

ответ

0

Во-первых, вы можете использовать «Javascript» шаг, чтобы преобразовать «_id» значение в формате JSON:

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

Затем в последней строке «выходной MongoDB» шаг, который вы должны установить JSON атрибут Y.

Смежные вопросы