mongodb聚合返回的值与记录的值不同
当我运行聚合时,结果和数据显示不同的值我不明白为什么会发生这种情况,如何解决这个问题mongodb聚合返回的值与记录的值不同,mongodb,typescript,Mongodb,Typescript,当我运行聚合时,结果和数据显示不同的值我不明白为什么会发生这种情况,如何解决这个问题 const data = await QuestionBank.aggregate([{ $match: { $and: [{ question_sub_catagory: "Data Sufficiency" }, { difficulty_level: "Easy"
const data = await QuestionBank.aggregate([{
$match: {
$and: [{
question_sub_catagory: "Data Sufficiency"
}, {
difficulty_level: "Easy"
}]
}
},
{
$sample: {
size: 1
}
},
{
$group: {
_id: {
question_id: "$question_id",
question_sub_catagory: "Data Sufficiency",
difficulty_level: "Easy"
}
}
}
], function(err: any, result: string) {
if (err) {
console.log(err);
};
console.log(result, "result");
return result
})
console.log(data);
输出为:
[ { _id:
{ question_id: '3febc9ef-cb3e-42c7-bfb6-a18e780cab6c',
question_sub_catagory: 'Data Sufficiency',
difficulty_level: 'Easy' } } ]
结果是:
[ { _id:
{ question_id: '43abc9ef-cb3e-42c7-bfb6-a18e780cab6c',
question_sub_catagory: 'Data Sufficiency',
difficulty_level: 'Easy' } } ]
您正在混合回调和承诺的语法 根据经验,异步函数签名将是其中之一。返回一个承诺,您可以
等待它
或。然后()。或者调用回调函数
Mongo支持这两种类型的调用。通过给它一个回调函数,基本上就是告诉Mongo不要返回承诺
因此,要么放弃回调:
const data = await QuestionBank.aggregate([
{
$match: {
$and: [
{
question_sub_catagory: "Data Sufficiency"
}, {
difficulty_level: "Easy"
}
]
}
},
{
$sample: {
size: 1
}
},
{
$group: {
_id: {
question_id: "$question_id",
question_sub_catagory: "Data Sufficiency",
difficulty_level: "Easy"
}
}
}
]);
console.log(data);
或者将其包装在保留当前结构的承诺中(如果出于某种原因需要):
您正在混合回调和承诺的语法
根据经验,异步函数签名将是其中之一。返回一个承诺,您可以等待它
或。然后()。或者调用回调函数
Mongo支持这两种类型的调用。通过给它一个回调函数,基本上就是告诉Mongo不要返回承诺
因此,要么放弃回调:
const data = await QuestionBank.aggregate([
{
$match: {
$and: [
{
question_sub_catagory: "Data Sufficiency"
}, {
difficulty_level: "Easy"
}
]
}
},
{
$sample: {
size: 1
}
},
{
$group: {
_id: {
question_id: "$question_id",
question_sub_catagory: "Data Sufficiency",
difficulty_level: "Easy"
}
}
}
]);
console.log(data);
或者将其包装在保留当前结构的承诺中(如果出于某种原因需要):