表结构:
{
"bsonType": "object",
"required": ["type", "name", "intro", "tag"],
"permission": {
"read": false,
"create": false,
"update": false,
"delete": false
},
"properties": {
"_id": {
"description": "ID,系统自动生成"
},
"type": {
"bsonType": "string",
"description": "类型:img、radio、audio、http、article",
"maxLength": 10
},
"name": {
"bsonType": "string",
"description": "名称",
"maxLength": 40
},
"intro": {
"bsonType": "string",
"description": "简介",
"maxLength": 40
}
}
}
前端需要按type类型,分组展示,想要得到的数据结构为
{
'img':[{……},{……}],
'radio':[{……},{……}],
'audio':[{……},{……}],
……
}
但是尝试对着文档用group,只会得到
[
{
_id:{type:'img'}
},
{
_id:{type:'radio'}
},
{
_id:{type:'audio'}
}
]
而在云函数中,也不能是groupBy(),小白一个,请教大佬们要如何在云函数中解决?
lazybone2021 (作者)
可是group只能返回表中指定字段有几种类型,并不会返回数据内容,我现在做的是先用group拿到数据类型,再根据类型分别去查表,返回数据后再合并……感觉好麻烦……
res.data = []
let list = await db.collection('goods-list').aggregate().group({
_id: {
tag: '$tag',
tagName: '$tagName'
2021-08-29 15:27
DCloud_uniCloud_WYQ
回复 lazybone2021: 你这是实现什么需求?商品标签?如果每次都需要做这样的查询,商品数量多了之后你会查不出来的
2021-08-30 11:21
lazybone2021 (作者)
回复 DCloud_uniCloud_WYQ: 因为我这个商品列表有上限,最多就100个,所以想只查询一次,然后对结果分类展示,没有打算按分类,分别进行多次请求得到结果
2021-08-30 15:33
DCloud_uniCloud_WYQ
回复 lazybone2021: 那可以group之后再用lookup
2021-08-31 11:28
DCloud_uniCloud_WYQ
你这两个不是同一个表吗?如果就100个商品直接全查出来在云函数里面操作就行了
2021-08-31 11:29