gpt4 book ai didi

mongodb - mongoose node.js,使用 $lt 和 $gt 查询不工作

转载 作者:可可西里 更新时间:2023-11-01 10:01:33 24 4
gpt4 key购买 nike

我想获得最后分数在 15 到 20 之间的所有学生。为此,我使用 mongoose 在我的 mongoDB 中执行以下查询:模型运行良好(所有其他查询均正常)。

Pupils.find({"marks[-1].value": {'$lt' : 20 }, "marks[-1].value" : { '$gt' : 15 }}, function(err, things){

这行不通,我错过了什么吗?

* 更新 *

我发现了类似的东西:

Pupils.find({ "marks[-1].value": {$gt : 15, $lt : 20}});

但这也行不通。在这种情况下,有没有办法获取标记数组的最后一个标记?

最佳答案

让我们考虑一下您的 Pupils 集合:

Pupils 
{
_id,
Marks(integer),
LatestMark(int)
}

我建议将最新标记添加到 Pupil 文档中(如您在上面的文档中所见),并在每次将新标记添加到嵌套集合中时更新它。然后你就可以像这样查询它:

db.Pupils.find({ "LatestMark": {$gt : 15, $lt : 20}});

您还可以使用 $where 查询最新标记,但要小心,因为:

Javascript executes more slowly than the native operators, but is very flexible

关于mongodb - mongoose node.js,使用 $lt 和 $gt 查询不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5627995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com