【发布时间】:2021-03-04 05:07:17
【问题描述】:
大家好,这里的任何人都可以帮助我进行以下查询
- 我想获取随机数量的测验列表
- rendom 的数量将 以每节课为基础
问题是
- mongodb 不允许将参数传递给 $sample 的元素大小
任何人都可以给我解决方案
lessonModel.aggregate([
{ $match : {'quiz.status':1 } },
{
$lookup : {
from : 'quiz',
let : { 'lesson_id' : '$_id','limit' : '$quiz.amount' },
pipeline : [
{
$match: {
$expr: {
$eq: [ "$lesson_id", "$$lesson_id" ]
}
}
},
{
$project: {
title:1,
check_list:1,
duration:1
}
},
{ $sample: { size: '$$limit' } }
],
as: 'quiz'
}
},
{$unwind: '$quiz'},
{ $replaceRoot: { newRoot: "$quiz" } }
]).exec();
错误说 $sample 的 size 参数必须是数字
【问题讨论】:
-
从您的
lessons收藏或lessonModel发布一些数据 -
请使用Mongo Playground分享您的示例数据和查询:)
-
@DheemanthBhat 我在帖子中添加了示例数据
-
@ray 我已经在我的帖子中更新了请检查
-
@DaraVichit 检查更新的答案是否有助于您随机选择
amount数量的quiz的实际问题。
标签: mongodb mongoose aggregation-framework