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

image.png

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

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

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

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

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

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

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

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

  • 思源笔记

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

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

    26032 引用 • 108042 回帖
  • Q&A

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

    10001 引用 • 45455 回帖 • 73 关注
被采纳的回答

欢迎来到这里!

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

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

  • 试试这个方法

    // 获取数据库视图统计值 // 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 更新了该回帖
  • 可以了!非常感谢大佬!

请输入回帖内容 ...

推荐标签 标签

  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 560 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 734 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • 智能合约

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

    1 引用 • 11 回帖 • 3 关注
  • Access
    1 引用 • 3 回帖 • 2 关注
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 655 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    371 引用 • 1857 回帖 • 2 关注
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    91 引用 • 59 回帖 • 4 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 26 关注
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 568 关注
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 765 关注
  • Kafka

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

    36 引用 • 35 回帖 • 1 关注
  • PWL

    组织简介

    用爱发电 (Programming With Love) 是一个以开源精神为核心的民间开源爱好者技术组织,“用爱发电”象征开源与贡献精神,加入组织,代表你将遵守组织的“个人开源爱好者”的各项条款。申请加入:用爱发电组织邀请帖
    用爱发电组织官网:https://programmingwithlove.stackoverflow.wiki/

    用爱发电组织的核心驱动力:

    • 遵守开源守则,体现开源&贡献精神:以分享为目的,拒绝非法牟利。
    • 自我保护:使用适当的 License 保护自己的原创作品。
    • 尊重他人:不以各种理由、各种漏洞进行未经允许的抄袭、散播、洩露;以礼相待,尊重所有对社区做出贡献的开发者;通过他人的分享习得知识,要留下足迹,表示感谢。
    • 热爱编程、热爱学习:加入组织,热爱编程是首当其要的。我们欢迎热爱讨论、分享、提问的朋友,也同样欢迎默默成就的朋友。
    • 倾听:正确并恳切对待、处理问题与建议,及时修复开源项目的 Bug ,及时与反馈者沟通。不抬杠、不无视、不辱骂。
    • 平视:不诋毁、轻视、嘲讽其他开发者,主动提出建议、施以帮助,以和谐为本。只要他人肯努力,你也可能会被昔日小看的人所超越,所以请保持谦虚。
    • 乐观且活跃:你的努力决定了你的高度。不要放弃,多年后回头俯瞰,才会发现自己已经成就往日所仰望的水平。积极地将项目开源,帮助他人学习、改进,自己也会获得相应的提升、成就与成就感。
    1 引用 • 487 回帖 • 1 关注
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    4 引用 • 7 回帖 • 3 关注
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 182 关注
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 705 关注
  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 11 关注
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 192 关注
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 438 关注
  • OpenCV
    15 引用 • 36 回帖 • 6 关注
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖 • 1 关注
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    35 引用 • 468 回帖 • 761 关注
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖 • 4 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    947 引用 • 1460 回帖 • 2 关注
  • 互联网

    互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。

    98 引用 • 367 回帖
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖