search - how to convert cloudant query to nano search
问题描述
I have this query in cloudant database, but backend use var db = nano.db.use(process.env.DB_NAME || ''); which doesn't support db.find but support db.search. how could I convert this query to a search parameter?
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 Search 类似于
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
假设您已经适当地索引了这些字段。
推荐阅读
- interrupt - 带有假 ATmega328 的 Arduino Nano?
- macos - 是否有任何核心转储设置仅可用于 Mac 上的进程的最新设置?
- laravel - 许多记录上碳的正确时区
- c# - 在网络核心运行时从字符串执行代码?
- javascript - ("[object Promise]") 不能序列化为 JSON
- swiftui - 如何使用matchedGeometryEffect和视图缩放
- python-3.x - Websocketapps 在参数值更改时添加另一个查询
- java - 获取 XSSF 单元格的背景颜色
- powershell - 调用包含 get-date 的表达式时的 InvalidArgument
- javascript - 以编程方式获取 fetch 支持的标准头列表