У меня есть структура документа в Космосе, которая обычно выглядит следующим образом:
{
"Item No": "123456",
"Item Desc": "This is a description.",
"images": {
"https://somedomain.com/image1.png",
"https://somedomain.com/image2.png",
}
}
Иногда могут быть пустые значения изображения, например:
{
"Item No": "123456",
"Item Desc": "This is a description.",
"images": {
"",
""
}
}
Я написал UDF (пользовательскую функцию), которая заменит любые пустые значения значением по умолчанию:
function missingImage(doc, prop) {
if (typeof doc[prop] === "undefined" || doc[prop] === "" || doc[prop] === null) {
return "https://via.placeholder.com/150";
}
}
Если URL-адрес изображения пуст, я получаю возврат (правильный):
{
"id": "e3842b29-313c-4a84-bc94-bc43a9a55742",
"Item No": "123456",
"Item Desc": "This is a description.",
"image": "https://via.placeholder.com/150"
},
Мой SELECT
запрос выглядит так:
"c.id, c['Item No'], c['Item Desc'], udf.missingImage(c.images[0]) as image"
Однако в ситуациях, когда вообще нет ключа изображения, например:
{
"Item No": "123456",
"Item Desc": "This is a description."
}
Я не вернусь по умолчанию.
Мой вопрос: Как я могу изменить свой UDF или запрос так, чтобы, если ключ images
не существовал, я все равно возвращал значение по умолчанию?