как преобразовать облачный запрос в нанопоиск

У меня есть этот запрос в облачной базе данных, но в бэкэнде используется 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": [
                    "[email protected]"
                ]
            }
        },
        "fields": [
            "operation",
            "operator",
            "type",
            "region",
            "country",
            "supplier_name",
            "operation_time",
            "pif_owner"
        ]
    };

person TammyShi    schedule 16.10.2018    source источник


Ответы (1)


Библиотека 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:[email protected]

при условии, что вы правильно проиндексировали поля.

person Glynn Bird    schedule 22.10.2018