Запрос массива N1QL для условия проверки внутреннего элемента

У меня есть JSON, как показано ниже

{
  "_id": "000fad10-b2de-11e6-92de-632a9b1d21d9",
  "_type": "Company",
  "status": 1,
  "transactions": [
    {
      "completed": 1,
      "currency": "USD",
      "date": "2015-12-01T18:30:00.000Z",
      "method": 0,
      "type": 0
    }
  ]
}

Я хочу запустить запрос ниже

select * from MyBucket where transactions.method in (0,3);

Как мне это сделать в N1QL??


person krishn Patel    schedule 25.11.2016    source источник


Ответы (2)


Попробуй это:

SELECT * FROM MyBucket b UNNEST b.transactions t WHERE t.method in [0,3];

сохраните эту памятку

person num8er    schedule 25.11.2016
comment
Я пропускаю [ ] в in. Используя ваш запрос, я получаю всего 4 json. Но у меня их всего 3. В одном json у меня 2 транзакции. - person krishn Patel; 25.11.2016
comment
Не нужно UNNEST: SELECT * FROM MyBucket WHERE transaction.method IN [0,3]; - person geraldss; 25.11.2016
comment
вы видите этот вопрос ?? stackoverflow.com/questions/40838443/ - person krishn Patel; 28.11.2016

SELECT * FROM MyBucket WHERE ANY x IN transactions SATISFIES x.method in[1,0] END;

Я получаю ответ на это

person krishn Patel    schedule 25.11.2016