2017-01-10 1 views
1

を大切サブ文書のプロパティのいずれかに一致n1ql私の文書構造は次のとおりです。Couchbaseのは、もう一つの問題

{ 
    "desktop": { 
    "default": { 
     "s": { 
     "camp": { 
      "100112": 0, 
      "100114": 0, 
      "100122": 0 
     }, 
     "score": 1 
     } 
    } 
    } 
} 

私はキャンプの特性の少なくとも1つが、私はのようなものをstarrt 0よりも大きい文書を検索します:

select * from my_bucket t where ANY camp_id IN desktop.default.s.camp SATISFIES camp_id.value > 0 END

しかし、もちろん、それは動作しません:)

任意の手掛かりを?

ありがとうございます!

答えて

1

あなたはANY ... IN ... SATISFIES節を使用して正しい軌道に乗っています。

クエリの主な問題は、valueプロパティが一時的なcamp_idオブジェクトに存在しないことです。代わりにOBJECT_VALUESファンクション(https://developer.couchbase.com/documentation/server/4.5/n1ql/n1ql-language-reference/objectfun.html)を使用してcampフィールドの値を取り出し、直接比較することができます。

あなたのクエリは次のようになります。

SELECT 
    * 
FROM my_bucket 
WHERE 
    ANY camp_val 
    IN OBJECT_VALUES(default.desktop.default.s.camp) 
    SATISFIES camp_val > 0 
END 
+0

それが魅力のTKSのように動作します! – Kinesra

関連する問題