node.js - groupBy 查询与 nodejs ravendb 客户端

标签 node.js typescript ravendb

我正在尝试使用 nodejs-ravendb-client 在 ravendb 上执行 groupBy 查询!

const apmts = await session.query<Appointment>({ collection: "Appointments" })
      .statistics(s => (stats = s))
      .groupBy("client.name").all();

在 typescript 编译时遇到这个错误

Property 'all' does not exist on type 'IGroupByDocumentQuery<Appointment>'.ts(2339)

这里有什么帮助吗?

最佳答案

文档查询的groupBy() 方法返回类型为IGroupByDocumentQuery 的对象 如您所见,它没有 all() 方法。

您可以使用 selectKey()selectCount()selectSum() 进行聚合,然后将其与 all( )。例如:

const { GroupByField } = require("ravendb");

const orders = await session.query({ collection: "Orders" })
    .groupBy("ShipTo.Country")
    .selectKey("ShipTo.Country", "Country")
    .selectSum(new GroupByField("Lines[].Quantity", "OrderedQuantity"))
    .all();

更多细节和例子请引用official documentation :

关于node.js - groupBy 查询与 nodejs ravendb 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55607170/

相关文章:

node.js - 如何在 binding.gyp node-gyp 中为 node.js 扩展添加对静态库的依赖

Typescript strictNull 检查和闭包

c# - RavenDB 读取性能

node.js - 在webpack中选择正确的environment.ts

javascript - 如何使用 async-await 停止执行下一个函数?

javascript - Node.js:取决于用户身份验证的条件内容

json - 如何使用Observable从文件中获取json数据

javascript - 消息: string[] = []; in angular class?是什么意思

ravendb - 在测试结果输出中显示 RavenDB 请求

ravendb - 当 NServiceBus 尝试安排超时时,Raven 返回 400 "Request Too Long"错误