MongoDB 小于查询不生效,查询出不符合范围的数据,这是我的查询语句
{
"customerId" : { "$in" : ["1372727786178519042"]},
"screenTime" : { "$gte" : "2022-08-25 00:00:00", "$lte" : "2023-08-25 23:59:59"},
"$and" : [{ "itemInfos.itemValue" : { "$lt" : 180}, "itemInfos.itemCode" : "height"}]
}
查询出 “height”大于 180 的数据
【以下回答由 GPT 生成】
首先,根据提供的查询语句看起来你正在使用MongoDB而不是SQL数据库。MongoDB使用自己的查询语法,与传统的SQL语句有所不同。
根据你提供的查询语句,有一个逻辑错误。在查询中,使用$and
运算符同时检查两个条件:"itemInfos.itemValue" : { "$lt" : 180}
和"itemInfos.itemCode" : "height"
。这意味着你希望查询满足两个条件的文档。
然而,你的问题是这个查询返回了大于180的数据。这可能是由于$and
运算符的使用方式不正确导致的。
下面是一个修正后的查询语句:
{
"customerId" : { "$in" : ["1372727786178519042"]},
"screenTime" : { "$gte" : "2022-08-25 00:00:00", "$lte" : "2023-08-25 23:59:59"},
"itemInfos" : { "$elemMatch" : { "itemValue" : { "$lt" : 180}, "itemCode" : "height"} }
}
修正后的查询使用了$elemMatch
运算符来对itemInfos
数组中的元素进行匹配。$elemMatch
运算符可以确保两个条件同时满足。
请尝试使用修正后的查询语句,并检查是否能够正确返回小于180的数据。如果仍然遇到问题,请提供更多的信息以便进一步分析。
【相关推荐】