2017-09-26 91 views
0

我將IMDB電影演示數據庫導入到我的CouchDB實例中,並通過使用一些Cloudant教程和參考學習瞭解Mango。如何從Cloudant(或Mango)查詢中排除某些文檔?

我寫了這個查詢來識別其中演員的名字就像「布魯斯」的文件。現在我想修改這個從結果集中排除某些文檔。例如Movie_name <>'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" } 
    } 
} 

注意的一點是:在查詢中使用的$regex不是出色的性能配方,因爲它必然勢力的CouchDB做所有文件的手動掃描在數據庫中,而不是採取的一大優勢預建索引。同樣,$ne運營商也有類似的性能特點。

使用Cloudant數據庫(託管CouchDB服務)的建議做法是在要查詢的字段上創建type=text索引。此索引將允許您在查詢中使用$text運算符代替正則表達式,這應該更有效。

相關問題