mongodb按照meterId分组查询em_meter_data表communityId=46并且meteringTime在2023-09-06 000000和2023-09-06 235959之间的数据找出valuevalue1value2value3value4其中之一不为空的数据写出语句
以下是按照meterId分组查询em_meter_data表的MongoDB语句:
db.em_meter_data.aggregate([
{
$match: {
communityId: 46,
meteringTime: {
$gte: ISODate("2023-09-06T00:00:00"),
$lte: ISODate("2023-09-06T23:59:59")
}
}
},
{
$group: {
_id: "$meterId",
value: { $first: "$value" },
value1: { $first: "$value1" },
value2: { $first: "$value2" },
value3: { $first: "$value3" },
value4: { $first: "$value4" }
}
},
{
$match: {
$or: [
{ value: { $ne: null } },
{ value1: { $ne: null } },
{ value2: { $ne: null } },
{ value3: { $ne: null } },
{ value4: { $ne: null } }
]
}
}
])
注意将em_meter_data替换为实际的集合名称。该语句首先使用$match筛选出符合条件的数据,然后使用$group按照meterId进行分组,并使用$first获取每个分组中的第一个非空值。最后,使用$match筛选出至少一个值不为空的数据
原文地址: http://www.cveoy.top/t/topic/i1Ai 著作权归作者所有。请勿转载和采集!