Проверьте, существует ли поле в CosmosDB JSON с SQL - nodeJS - PullRequest
0 голосов
/ 06 сентября 2018

Я использую Azure CosmosDB для хранения документов (JSON).

Я пытаюсь запросить все документы, содержащие поле "abc", и не возвращаю документы, которые не имеют поля "abc",Например, верните первый объект ниже, а не второй

{
    "abc": "123"
}

{
    "jkl": "098"
}

Я пытаюсь использовать следующий код:

client.queryDocuments(
collectionUrl,
`SELECT r.id, r.authToken.instagram,r.userName FROM root r WHERE r.abc`
)

Я предполагал, что выше будет проверять, существует ли abcпохоже на if (r.abc) {}

Я пытался использовать WHERE r.abc IS NOT NULL

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

Если вы хотите узнать, существует ли поле, вы должны использовать IS_DEFINED ("FieldName") Если вы хотите знать, имеет ли значение поля значение FieldName! = Null или FieldName <> null (очевидно)

Я использую варианты этого в производстве:

ВЫБРАТЬ c.FieldName ОТ С WHERE IS_DEFINED (c.FieldName)

0 голосов
/ 06 сентября 2018

Все, что вам нужно сделать, это изменить ваш запрос на

SELECT r.id, r.authToken.instagram,r.userName FROM root r WHERE r.abc != null

или

SELECT r.id, r.authToken.instagram,r.userName FROM root r WHERE r.abc <> null

Оба оператора работают (протестировано в Data Explorer)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...