【问题标题】:MongoDB find() $eq and $gt not working togetherMongoDB find() $eq 和 $gt 不能一起工作
【发布时间】:2022-01-19 16:55:07
【问题描述】:

当我运行以下查询时,“等级”上的 $eq 为 80,“平均”上的 $gt 为 80。我得到的结果是“等级”85

db.Test_Collection.find({"semester":3, "grades.grade": { $eq:80 },"grades.mean": { $gt:80 }},{ "grades.$": 1 })

下面是结果

{ "_id" : ObjectId("61b9c7fd0855658fad86a10c"), "grades" : [ { "grade" : 85, "mean" : 90, "std" : 5 } ] }

【问题讨论】:

  • 完整文档中的同一个数组是否包含grade=80的对象?
  • 您期望的结果是什么,为什么?
  • 是的,它在那里
  • 是的,它在那里 > db.Test_Collection.find({}) { "_id" : ObjectId("61b9c7fd0855658fad86a10c"), "semester" : 3, "grades" : [ { "grade" : 80,“平均”:75,“标准”:8 },{“等级”:85,“平均”:90,“标准”:5 },{“等级”:90,“平均”:85,“标准” " : 3 } ] } { "_id" : ObjectId("61b9c9450855658fad86a10e"), "semester" : 3, "grades" : [ { "grade" : 92, "mean" : 88, "std" : 8 }, { “等级”:78,“平均”:90,“标准”:5},{“等级”:88,“平均”:85,“标准”:3}]}我期待{“_id”:ObjectId( “61b9c7fd0855658fad86a10c”),“学期”:3,“成绩”:[{“成绩”:80,“平均”:75,“标准”:8}

标签: arrays mongodb pymongo


【解决方案1】:

我在playground 中重写了您的查询。另外我将mean 设置为大于70,因为您的描述似乎有误(您搜索mean 大于80 但您的期望是{ "_id" : ObjectId("61b9c7fd0855658fad86a10c"), "semester" : 3, "grades" : [ { "grade" : 80, "mean" : 75, "std" : 8 })

【讨论】:

    猜你喜欢
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    相关资源
    最近更新 更多