微信小程序云开发云函数res = await db.collection('usersproducts').where({ _openid: _.in(event.sampleid.productOpenid) }) .aggregate() .sample({ size: event.size }) .end() ps = res.list这段代码报错,报错信息是:Error: cloud.callFunction:fail Error: errCode: -504002 functions execute fail | errMsg: TypeError: db.collection(...).where(...).aggregate is not a function
时间: 2023-06-17 21:07:32 浏览: 128
微信小程序云开发之使用云函数
这个错误提示是因为 `aggregate` 函数不支持在云函数中使用,它是 MongoDB 数据库中的聚合函数。在小程序云开发中,可以使用 `get()` 或 `field()` 函数来实现类似的功能。
你可以尝试将代码修改为以下形式:
```
const db = wx.cloud.database()
const _ = db.command
const res = await db.collection('usersproducts')
.where({
_openid: _.in(event.sampleid.productOpenid)
})
.field({
// 如果需要随机获取数据,可以添加一个随机字段
random: db.command.rand(),
// 返回结果中只需要 _id 字段
_id: true
})
.get()
const ps = res.data
```
这样就可以实现在云函数中根据指定的 _openid 随机获取指定数量的数据了。
阅读全文