数据如下
表名:demo
{
"date":ISODate("2016-07-21")
"name":"userno"
"items":{
"00:01":{
"press":"1111",
},
"00:02":{
"press":"1121",
},
"00:03":{
"press":"2111",
},
....
"23:58":{
"press":"1311",
},
"23:59":{
"press":"1511",
}
}
},
{
"date":ISODate("2016-07-20")
"name":"userno"
"items":{
"00:01":{
"press":"4111",
},
"00:02":{
"press":"1621",
},
"00:03":{
"press":"2177",
},
....
"23:58":{
"press":"1311",
},
"23:59":{
"press":"1519",
}
}
},
{
"date":ISODate("2016-07-20")
"name":"userno222222"
"items":{
"00:01":{
"press":"4111",
},
"00:02":{
"press":"1621",
},
"00:03":{
"press":"2177",
},
....
"23:58":{
"press":"1311",
},
"23:59":{
"press":"1519",
}
}
},
现在要求name为userno,date是2016-07-21的数据中的press的最大值和最小值
请问mongo的sql应该怎么写
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
你的文档结构没有办法支持
aggregation的$group/$max操作。另外items下面的子文档也不好建索引。建议这样的结构:
这样修改之后可以使用
aggregation方便地取得最小和最大press:这建立在对aggreation framework的正确理解上。相关知识请查阅文档。
1.查询文档,之后对文档做极值
2.使用group