1000 积分悬赏,统计数据库视图的条目数量

image.png

问题:现有数据库视图,统计条目的数量是计算的,动态生成的,无法直接使用

需求:我想要,指定数据库(最好以:ID 指定),指定视图(最好以:视图名称指定),动态的得到该视图筛选后的条目数(也就是这个数据库视图,重新筛选、删除、增加,变动后,条目数变动)

目的:能够直接使用该条目的数字(其实我也不知道咋使用,要不先保存)

目前我想到的数字保存位置:

  1. 保存到指定文档内
  2. 保存到该数据库对应文档的标题上
  3. 其它(可以提出来,我看能不能用)

一般是 JS 代码能够实现吧,或者其他方法能够实现也行!

有以上想法的原因是:我习惯用数据库管理任务,多视图进行分组,但苦于数据库无法动态提示任务的数量,因此,计划用 quicker 调取数据库视图的条目数,从而实现自动提示,但由于该条目数是计算生成的,无法调用!

如果有其他方法,能够实现数据库任务数量的提醒,也可行!这是最终目的!

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    26353 引用 • 109599 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    10135 引用 • 46064 回帖 • 64 关注
被采纳的回答

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 最好先发出来方案,再实现,我需要确定下能不能用

  • 试试这个方法

    // 获取数据库视图统计值
    // avId 数据库id,注意是数据库id,不是数据库所在块id
    // viewName 视图名称
    async function getViewRowCount(avId, viewName) {
        // 获取视图信息
        const views = await fetchSyncPost('/api/av/getAttributeView', {"id": avId});
        const viewId = views?.data?.av?.views?.find(item=>item.name.includes(viewName))?.id;
        // 获取渲染结果
        const render = await fetchSyncPost('/api/av/renderAttributeView', {"id": avId, "viewID": viewId});
        return render?.data?.view?.rowCount;
        // 请求api
        async function fetchSyncPost(url, data, method = 'POST') {
            return await (await fetch(url, {method: method, body: JSON.stringify(data||{})})).json();
        }
    }
    

    调用方法:await getViewRowCount("20250615151745-eqtpjxm", "视图2");

    获取统计值后可以根据自己需要存储到任何地方。


    如何获取数据库 ID?

    可先安装这个代码后复制 https://gitee.com/wish163/mysoft/blob/main/%E6%80%9D%E6%BA%90/%E5%A4%8D%E5%88%B6%E6%95%B0%E6%8D%AE%E5%BA%93ID.js

    image.png


    另外,既然你用 quicker 获取,建议直接放到指定文件中,如果多个数据库可以用 json 格式存储。

    然后 quicker 直接读取即可。

    1 回复
    1 操作
    wilsons 在 2025-06-15 17:11:09 更新了该回帖
  • image.png

    表达式插件的方案,也可以使用 wilsons 提供的函数来实现输入 view 名称而非 id

    expr 代码:

    return await fetch('/api/av/renderAttributeView', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        // "Authorization": "Token xxx"
      },
      body: JSON.stringify({
        id: '20250615161101-8lu5ljm',
        pageSize: 9999,
        viewID: '20250615161135-yk18loi',
        query: '',
      }),
    }).then((r) => r.json()).then(r=>r.data.view.rows.length +1 );
    

    image.png

    安装插件后在块上自定义一个 expr 属性输入上面的代码即可

  • 这获取的是统计结果值,而{{}}嵌入块,必须返回块 id 才能显示内容,你这样测试自然无法测试。

    可放到控制台测试

    image.png

    1 回复
  • chenhao396 1 评论

    image.png结果为 0

    1 回复
    换了其他数据库也试了,都是 0
    chenhao396
  • 你的 ID 怎么拿到的?确定是数据库 ID?

    1 回复
  • image.png

    可以现实了
    给的这个链接,是要放到思源的代码片段 JS 里面吗?

    还有就是我该怎么用 quicker 调用这个数字

    1 回复
  • 对的,复制数据库 ID 放到代码片段即可

    如果你要用 quicker 获取,我等下把那些 api 改变 quicker 调用

    不过,也可以把这些数据放到指定文件,然后 quicker 读取

    或者试试这个 https://getquicker.net/SubProgram?id=cb322876-e4a3-462a-e322-08dd0733f195

    2 回复
  • image.pngimage.png

    思源的 channel 在哪里获取?

    1 回复
  • image.png
    我根据你给的样例动作,直接把刚刚能在思源运行的 js 代码,复制粘贴到里面了

    其他都能用,就这个代码不行

    1 回复
  • 可能是要安装 runjs 插件?

  • 别用那个了,直接用我给的这个演示示例,把动作代码复制过去即可

    视图统计值demo - by wilsons - 动作信息 - Quicker

    这 3 个变量的值修改成自己的

    image.png

    2 回复
  • 可以!感谢大佬!

  • chenhao396 1 评论

    大佬,再进一步问一下,能不能获得数据库视图的,主键的文本列表,写入到 quicker 的列表

    1 回复
    这样就能达到,用 quicker 做任务内容提示的功能了
    chenhao396
  • 示例已更新

    在第二个 HTTP 请求后的 json 提取中增加下面的路径和变量即可

    image.png

    1 回复
  • chenhao396 1 评论

    image.png

    主键列表是空的,这个是只有主键列表是文本,才能获得吗?
    能不能主键是,快引,也能获得名称

    2 回复
    我试了文本也获得不了,是不是有问题
    chenhao396
  • 和是否引用没关系,都能显示,我这边没问题。

    你那边仔细检查下代码,是不是哪里参数不对,比如数据库 id,token,视图名等,是否存在空格或不可见字符等。

    这可能与你本地环境有关,可使用 js 或 quicker 一步步调试下,看看哪一步出了问题,再针对性排查原因。

  • 我发现问题了,可能是因为你的主键不是在第一列的位置

    image.png

    如果主键不是第一的位置,需要对下面的路径进行相应调整

    image.png

    0 代表第一列,1 代表第 2 列,依次类推,主键在哪一列,改成哪个值

    如果想不同的主键位置都支持,可参考我最新版的 quicker 示例代码的解决方式,先获取主键列的位置,然后再提取数据。

    1 回复
    1 操作
    wilsons 在 2025-06-15 23:17:05 更新了该回帖
  • 可以了!非常感谢大佬!

请输入回帖内容 ...

推荐标签 标签

  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    315 引用 • 547 回帖 • 1 关注
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 36 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    37 引用 • 157 回帖 • 1 关注
  • 导航

    各种网址链接、内容导航。

    45 引用 • 177 回帖
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    415 引用 • 3596 回帖 • 1 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    201 引用 • 120 回帖 • 1 关注
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖
  • 智能合约

    智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于 1994 年由 Nick Szabo 首次提出。

    1 引用 • 11 回帖
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖 • 2 关注
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    554 引用 • 675 回帖
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    5 引用 • 16 回帖 • 1 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 233 回帖 • 1 关注
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    7 引用 • 30 回帖 • 376 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖 • 4 关注
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 710 关注
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 67 回帖 • 445 关注
  • 电影

    这是一个不能说的秘密。

    123 引用 • 608 回帖
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖 • 1 关注
  • Excel
    31 引用 • 28 回帖 • 1 关注
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖 • 1 关注
  • H2

    H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制,同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。

    11 引用 • 54 回帖 • 672 关注
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    209 引用 • 2040 回帖
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    326 引用 • 1395 回帖 • 2 关注
  • Hprose

    Hprose 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。你无需专门学习,只需看上几眼,就能用它轻松构建分布式应用系统。

    9 引用 • 17 回帖 • 643 关注
  • 自由行
    1 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 826 关注
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    17 引用 • 7 回帖 • 3 关注