我将IMDB电影演示数据库导入我的CouchDB实例,并通过使用一些Cloudant教程和参考资料来学习Mango。
我写了这个查询来识别其中演员的名字就像"布鲁斯"的文件。现在我想修改它以从结果集中排除某些文档。例如,Movie_name<> '怪物'
这是可能的,如果是的话,任何人都可以帮我弄清楚如何做到这一点吗?
{"selector":
{"_id":
{"$gt": null},
"Person_name": {"$regex": "(?i)bruce"}
}
}
答案 0 :(得分:2)
有$ne
运算符可用于匹配“不等于”给定值的文档。
{
"selector":{
"_id": {"$gt": null},
"Person_name": {"$regex": "(?i)bruce"},
"Movie_name": { "$ne": "Monster" }
}
}
提醒一句:在查询中使用$regex
并不是表现出色的方法,因为它不可避免地迫使CouchDB对数据库中的所有文档进行手动扫描,而不是利用预建指数。同样,$ne
运算符具有类似的性能特征。
使用Cloudant数据库(托管CouchDB服务)的建议做法是在要查询的字段上创建type=text索引。该索引允许您在查询中使用$text
运算符代替正则表达式,这应该更有效。