как использовать запрос buildQuery productState! = 'a' и productState! = 'b' - PullRequest
0 голосов
/ 07 ноября 2018

Я хочу запросить товар через его ipNum (т.е. уже существует) и productState, не равный 'REVOKE' и не равный 'SOLD'. Когда я запрашиваю только

productState != 'REVOKE'

это работает, но когда я запрашиваю

productState != 'REVOKE' and != 'SOLD'

не работает

1 Ответ

0 голосов
/ 07 ноября 2018
  1. в отношении ipNum - это поле (согласно Rocketchat https://chat.hyperledger.org/channel/composer?msg=naiTMBZdaikSs4Qps) не является полем актива Product - поэтому вашей проблемой, вероятно, будет сравнение intellectualProperty.ipNum - вы не можете использовать «пошаговую ссылку» в запросе для отношения (в другом классе активов) - например, предлагаете провести перекрестную проверку другим способом в вашей функции обработчика запросов или использовать сравнение if с inputValue в вашем коде, прежде чем вызывать запрос для проверки Product полей

  2. кажется, что AND (т. Е. То же значение оцениваемого поля) для двойных NOT не работает в [базовом] языке запросов couchDB (возвращает все), когда его поле совпадает. например,

    const q = buildQuery("SELECT org.xfb.ipchain.Product WHERE ( (productState != 
      'REVOKE') AND (productState != 'SOLD') )");
      const results = await query(q);
      console.log("results are " + results); // returns all status
    
      results.forEach(function(res){
            console.log("result instance is " + res.id + " " + res.status);
              });
    

Возможно, вы захотите пересмотреть свой дизайн запроса статуса.

...