云函数代码如下:
'use strict';
const db = uniCloud.database();
const dbCmd = db.command;
exports.main = async (event, context) => {
let body = event.body
if (event.isBase64Encoded) {
body = Buffer.from(body)
}
const param = JSON.parse(body)
let _id = param._id
let id=param.stockout_id
let date=param.date
let collection2 = db.collection("stockout_info")
let res = {}
switch (param.action) {
case 'total'://合计总数量
// 按品种汇总数量
const totalQty = await collection2.where({'stockout_id':id})
.groupBy('p_type')
.groupField('sum(qty) as totalQty')
.getTemp();
// 按品种汇总面积
const totalArea = await collection2.where({'stockout__id':id})
.groupBy('p_type')
.groupField('sum(area) as totalArea')
.getTemp();
// 按品种汇总延长米
const totalYCM = await collection2.where({'stockout_id':id})
.groupBy('kuang_type')
.groupField('sum(yanchangmi) as totalYCM')
.getTemp();
res = await db.multiSend(totalQty)
break;
default:
res = {
code: 404,
msg: 'NOT_FOUND'
}
break;
}
函数Url后,访问日志为
"queryStringParameters": {},
"isBase64Encoded": false,
"body": "{\"stockout_id\":\"CK20418161610\",\"action\":\"total\"}"
},
"requestId": "ac140b831650276235910150301"
}
[stockout/ac140b831650276235910150301/2ms/ERROR] collection2.where(...).groupBy is not a function
TypeError: collection2.where(...).groupBy is not a function
at exports.main (/tmp/function/__index.js:139:6)
at i (/tmp/function/index.js:1:3060)
at d (/tmp/function/index.js:1:3511)
at runUserFunction (/code/index.js:118:207833)
at (<anonymous>)
at _tickCallback (internal/process/next_tick.js:189:7)
请求响应状态: fail
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
请问是哪里写错了?
数据表如下:
![](http://img-cdn-tc.dcloud.net.cn/uploads/questions/20220418/25a4e96da60e6616dee8fa5ac883f09f.png)
另外如何不用分组,统计所有的qty, area?能否用一条语句?谢谢!