高级查询-部分匹配

问题描述 投票:0回答:1

我正在尝试找出在Cloudant / CouchDB数据库中查询可变数据的最佳方法。我要解释的唯一方法是显示一个示例:

数据库示例

    {
        "_id": "1",
        "query-able_values": {
            "value-type-b": "some value",
            "value-type-c": "some other value",
            "value-type-d": "another value",
            "value-type-f": "yet another value",
        }
    }

    {
        "_id": "2",
        "query-able_values": {
            "value-type-a": "value",
            "value-type-c": "some other value",
            "value-type-d": "another value"
        }
    }

    {
        "_id": "3",
        "query-able_values": {
            "value-type-a": "some value",
            "value-type-e": "some other one",
        }
    }

查询示例

现在假设用户执行以下查询:

    "selector": {
        "query-able_values.value-type-a": "value",
        "query-able_values.value-type-b": "a value not present in the database",
        "query-able_values.value-type-c": "some other value",
        "query-able_values.value-type-d": "another value",
        "query-able_values.value-type-e": "a value not present in the database",
        "query-able_values.value-type-f": "a value not present in the database"
    }

我需要更改什么,以便查询将击中ID为2的数据库条目?

编辑我最初的问题并不十分清楚。用户完全不了解数据库中的内容,因此,哪些值是相关的。用户仅具有值[[a至f。我正在尝试找出一种方法来获取“最匹配的数据库条目”。

couchdb cloudant
1个回答
0
投票
根据CouchDB selector syntax,可以这样写。

"selector": { "query-able_values": { "value-type-a": "value", "value-type-b": { "$exists": false }, "value-type-c": "some other value", "value-type-d": "another value", "value-type-e": { "$exists": false }, "value-type-f": { "$exists": false } } }

或使用显式相等运算符。

"selector": { "query-able_values": { "value-type-a": { "$eq": "value"}, "value-type-b": { "$exists": false }, "value-type-c": { "$eq": "some other value"}, "value-type-d": { "$eq": "another value"}, "value-type-e": { "$exists": false }, "value-type-f": { "$exists": false } } }

© www.soinside.com 2019 - 2024. All rights reserved.