【问题标题】:Couchbase N1QL Select key for query resultsCouchbase N1QL 查询结果的选择键
【发布时间】:2020-08-15 05:25:13
【问题描述】:

我正在尝试获取具有特定字段重复值的所有条目的文档键。

我有这个查询来查找重复项:

SELECT t1.somefield, t1.fieldcount FROM
(SELECT somefield, fieldcount FROM `mybucket` WHERE `somefield` IS NOT MISSING GROUP BY somefield
LETTING fieldcount = COUNT(somefield) ) as t1
WHERE t1.fieldcount > 1;

并且需要为每个结果获取 META().id。 我可以在单个查询中执行此操作吗?

【问题讨论】:

    标签: couchbase n1ql


    【解决方案1】:

    使用 ARRAY_AGG(META().id)

    SELECT d.somefield, cnt, docids
    FROM mybucket AS d
    WHERE d.somefield IS NOT NULL
    GROUP BY d.somefield
    LETTING cnt = COUNT(1), docids = ARRAY_AGG(META(d).id)
    HAVING cnt > 1;
    

    SELECT d.somefield, ARRAY_LENGTH(docids) AS cnt, docids
    FROM mybucket AS d
    WHERE d.somefield IS NOT NULL
    GROUP BY d.somefield
    LETTING docids = ARRAY_AGG(META(d).id)
    HAVING ARRAY_LENGTH(docids) > 1;
    

    【讨论】:

    • 这行得通。我没有足够的分数来将答案标记为正确。
    猜你喜欢
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多