commit
This commit is contained in:
@@ -2,26 +2,58 @@
|
||||
const db = uniCloud.database();
|
||||
exports.main = async (event, context) => {
|
||||
//event为客户端上传的参数
|
||||
// const count = await db.collection('questionList').count()
|
||||
// 根据level字段随机返回不同的数据
|
||||
|
||||
|
||||
// 根据level字段随机返回数据库中不同的数据40组
|
||||
let res = await db.collection('allWordList').aggregate().match({
|
||||
difficulty: event.level
|
||||
}).sample({
|
||||
size: 10
|
||||
}).limit(10).addFields({
|
||||
'options':["$means",'B. v.爬升,上升.n.爬升率,上升率;上升距离','C adv.不变地;经常地;坚持不懈地','D n.积云;组合,集结;累积;形成']
|
||||
}).end()
|
||||
|
||||
// let resMeans = await db.collection('allWordList').where({})
|
||||
size: 40
|
||||
}).limit(40).end()
|
||||
let data = res.data
|
||||
console.log('入参:页码+难度', event, res)
|
||||
let optionData = [];
|
||||
// 设置计数器
|
||||
let count = 0;
|
||||
// 前10组数据用于题目 后30组数据用于选项
|
||||
data.forEach((item, index) => {
|
||||
if (index < 10) {
|
||||
item.options = [item.means]
|
||||
} else if (index >= 10 && index < 40) {
|
||||
optionData.push(item.means)
|
||||
}
|
||||
|
||||
// let res
|
||||
})
|
||||
|
||||
// 将后30组数据中的单词含义赋值到前10组数据中的数组中
|
||||
data.forEach((item, index) => {
|
||||
if (item.options) {
|
||||
for (let i = 1; i < 4; i++) {
|
||||
item.options.push(optionData[count])
|
||||
count++
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
// 打乱题目选项
|
||||
data.forEach((item, index) => {
|
||||
if (item.options) {
|
||||
item.options.sort(() => {
|
||||
return (0.5 - Math.random());
|
||||
});
|
||||
// 添加题标
|
||||
item.options[0] = `A. ${item.options[0]}`
|
||||
item.options[1] = `B. ${item.options[1]}`
|
||||
item.options[2] = `C. ${item.options[2]}`
|
||||
item.options[3] = `D. ${item.options[3]}`
|
||||
}
|
||||
})
|
||||
|
||||
console.log('选项列表', optionData)
|
||||
console.log('入参:页码+难度', event, res)
|
||||
//返回数据给客户端
|
||||
return {
|
||||
code: 200,
|
||||
msg: 'success',
|
||||
data
|
||||
data,
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user