2017-09-26 17 views
0

IMDBムービーデモデータベースをCouchDBインスタンスにインポートしました。クラウドのチュートリアルやリファレンスを利用してMangoについて学んでいます。Cloudant(またはMango)クエリから特定のドキュメントを除外する方法は?

俳優の名前が「ブルース」のような文書を識別するためにこのクエリを書いたのです。今私は結果セットから特定のドキュメントを除外するためにこれを修正したいと思います。たとえば、映画名は<>「Monster」です。

これは可能なのですか?もしそうなら誰でも私にこれをどうやってやるのを助けることができますか?

{"selector": 
    {"_id": 
    {"$gt": null}, 
    "Person_name": {"$regex": "(?i)bruce"} 
    } 
} 

答えて

1

与えられた値「と等しくない」されている文書を一致させるために使用することができます$neオペレータがあります。

{ 
    "selector":{ 
    "_id": {"$gt": null}, 
    "Person_name": {"$regex": "(?i)bruce"}, 
    "Movie_name": { "$ne": "Monster" } 
    } 
} 

注意の言葉:それは避けられない力のCouchDBはかなりの利点を取るよりも、データベース内のすべての文書の手動スキャンを実行するため、クエリで$regexの使用は素晴らしいパフォーマンスのためのレシピではありませんあらかじめ作成されたインデックス。同様に、$ne演算子も同様の性能特性を持ちます。

Cloudantデータベース(ホストされているCouchDBサービス)の推奨される方法は、照会しているフィールドにtype=textというインデックスを作成することです。このインデックスを使用すると、正規表現の代わりに$text演算子をクエリに使用できます。これははるかに効率的です。

関連する問題