如何将Cloudant查询转换为nano搜索



我在 cloudant 数据库中有这个查询,但后端使用 var db = nano.db.use(process.env.DB_NAME ||'');它不支持db.find,但支持db.search。如何将此查询转换为搜索参数?

var queryPifLog = {
"selector": {
"type": "piflog",
"supplier_name": "1234",
"region": {
"$in": [
"ANZ",
"GCG"
]
},
"assign_datetime":{
"$gt":assignedDate
},
"closure_datetime":{
"$lt": closedData
},
"pif_owner": {
"$in": [
"haha@163.com"
]
}
},
"fields": [
"operation",
"operator",
"type",
"region",
"country",
"supplier_name",
"operation_time",
"pif_owner"
]
};

nano 库支持db.find,所以使用它很好。请参阅此处的文档:https://www.npmjs.com/package/nano#dbfindselector-callback

如果要使用Cloudant Search,则必须使用其基于Lucene的查询语言。上述查询的 Cloudant 搜索等效项类似于

q=type:piflog AND supplier_name:1234 AND (region:ANZ OR region:GCG) AND assign_datetime:(2018-01-01 TO *) AND closedData:(* TO 2018-10-22) AND pif_owner:haha@163.com

假设您已适当地为字段编制索引。