如何获得结果的结果匹配MongoDB中的子图案
**Below is the input array**
[
{
"CDF": {
"UTILITYTYPE": {
"D1": {
"G1": "12387835",
"G22": {
"NAME": "L1"
}
},
"D5": {
"EVENT": [
{
"CODE": "13",
"TIME": "29-05-2022 13:26:00",
"STATUS": "0",
"SNAPSHOT": [{
"PARAMCODE": "P1-2-1-1-0",
"VALUE": "114.94",
"UNIT": "V"
}, {
"PARAMCODE": "P1-2-2-1-0",
"VALUE": "119.54",
"UNIT": "V"
}, {
"PARAMCODE": "P1-2-3-1-0",
"VALUE": "236.78",
"UNIT": "V"
}, {
"PARAMCODE": "P2-1-1-1-0",
"VALUE": "1.836",
"UNIT": "A"
}, {
"PARAMCODE": "P2-1-2-1-0",
"VALUE": "0",
"UNIT": "A"
}, {
"PARAMCODE": "P2-1-3-1-0",
"VALUE": "0.87",
"UNIT": "A"
}, {
"PARAMCODE": "P4-1-1-0-0",
"VALUE": "0.82",
"UNIT": "NA"
}, {
"PARAMCODE": "P4-2-1-0-0",
"VALUE": "0",
"UNIT": "NA"
}, {
"PARAMCODE": "P4-3-1-0-0",
"VALUE": "0.99",
"UNIT": "NA"
}, {
"PARAMCODE": "P7-1-5-2-0",
"VALUE": "37923.31",
"UNIT": "k"
}]
},
{
"CODE": "13",
"TIME": "29-05-2022 14:41:00",
"STATUS": "1",
"SNAPSHOT": [{
"PARAMCODE": "P1-2-1-1-0",
"VALUE": "119.54",
"UNIT": "V"
}, {
"PARAMCODE": "P1-2-2-1-0",
"VALUE": "124.13",
"UNIT": "V"
}, {
"PARAMCODE": "P1-2-3-1-0",
"VALUE": "243.67",
"UNIT": "V"
}, {
"PARAMCODE": "P2-1-1-1-0",
"VALUE": "0",
"UNIT": "A"
}, {
"PARAMCODE": "P2-1-2-1-0",
"VALUE": "0",
"UNIT": "A"
}, {
"PARAMCODE": "P2-1-3-1-0",
"VALUE": "0.888",
"UNIT": "A"
}, {
"PARAMCODE": "P4-1-1-0-0",
"VALUE": "0",
"UNIT": "NA"
}, {
"PARAMCODE": "P4-2-1-0-0",
"VALUE": "0",
"UNIT": "NA"
}, {
"PARAMCODE": "P4-3-1-0-0",
"VALUE": "-0.99",
"UNIT": "NA"
}, {
"PARAMCODE": "P7-1-5-2-0",
"VALUE": "37923.64",
"UNIT": "k"
}]
}
]
}
}
}
},
{
"CDF": {
"UTILITYTYPE": {
"D1": {
"G1": "12388215",
"G22": {
"NAME": "L2"
}
},
"D5": {
"EVENT": [
{
"CODE": "7",
"TIME": "16-05-2022 04:28:21",
"STATUS": "0",
"SNAPSHOT": [{
"PARAMCODE": "P1-2-1-1-0",
"VALUE": "80.45",
"UNIT": "V"
}, {
"PARAMCODE": "P1-2-2-1-0",
"VALUE": "165.51",
"UNIT": "V"
}, {
"PARAMCODE": "P1-2-3-1-0",
"VALUE": "245.97",
"UNIT": "V"
}, {
"PARAMCODE": "P2-1-1-1-0",
"VALUE": "0",
"UNIT": "A"
}, {
"PARAMCODE": "P2-1-2-1-0",
"VALUE": "0",
"UNIT": "A"
}, {
"PARAMCODE": "P2-1-3-1-0",
"VALUE": "1.416",
"UNIT": "A"
}, {
"PARAMCODE": "P4-1-1-0-0",
"VALUE": "0",
"UNIT": "NA"
}, {
"PARAMCODE": "P4-2-1-0-0",
"VALUE": "0",
"UNIT": "NA"
}, {
"PARAMCODE": "P4-3-1-0-0",
"VALUE": "-0.99",
"UNIT": "NA"
}, {
"PARAMCODE": "P7-1-5-2-0",
"VALUE": "46407.46",
"UNIT": "k"
}]
},
{
"CODE": "7",
"TIME": "16-05-2022 06:30:30",
"STATUS": "1",
"SNAPSHOT": [{
"PARAMCODE": "P1-2-1-1-0",
"VALUE": "119.54",
"UNIT": "V"
}, {
"PARAMCODE": "P1-2-2-1-0",
"VALUE": "131.03",
"UNIT": "V"
}, {
"PARAMCODE": "P1-2-3-1-0",
"VALUE": "241.37",
"UNIT": "V"
}, {
"PARAMCODE": "P2-1-1-1-0",
"VALUE": "0",
"UNIT": "A"
}, {
"PARAMCODE": "P2-1-2-1-0",
"VALUE": "0",
"UNIT": "A"
}, {
"PARAMCODE": "P2-1-3-1-0",
"VALUE": "0.966",
"UNIT": "A"
}, {
"PARAMCODE": "P4-1-1-0-0",
"VALUE": "0",
"UNIT": "NA"
}, {
"PARAMCODE": "P4-2-1-0-0",
"VALUE": "0",
"UNIT": "NA"
}, {
"PARAMCODE": "P4-3-1-0-0",
"VALUE": "-0.99",
"UNIT": "NA"
}, {
"PARAMCODE": "P7-1-5-2-0",
"VALUE": "46407.79",
"UNIT": "k"
}]
}
]
}
}
}
}
]
Expected Output:
从上面的两个文档中,我只需要满足以下条件的文档。 我想检查事件阵列,并仅检查使用单位:v的值检查值,然后检查 示例:(108.04-163.21)或(163.21-271.26)或(271.26-108.04)> 30
我该如何在mongoDB聚合中执行此操作 我如何在MongoDB聚合中实现这一目标
**Below is the input array**
[
{
"CDF": {
"UTILITYTYPE": {
"D1": {
"G1": "12387835",
"G22": {
"NAME": "L1"
}
},
"D5": {
"EVENT": [
{
"CODE": "13",
"TIME": "29-05-2022 13:26:00",
"STATUS": "0",
"SNAPSHOT": [{
"PARAMCODE": "P1-2-1-1-0",
"VALUE": "114.94",
"UNIT": "V"
}, {
"PARAMCODE": "P1-2-2-1-0",
"VALUE": "119.54",
"UNIT": "V"
}, {
"PARAMCODE": "P1-2-3-1-0",
"VALUE": "236.78",
"UNIT": "V"
}, {
"PARAMCODE": "P2-1-1-1-0",
"VALUE": "1.836",
"UNIT": "A"
}, {
"PARAMCODE": "P2-1-2-1-0",
"VALUE": "0",
"UNIT": "A"
}, {
"PARAMCODE": "P2-1-3-1-0",
"VALUE": "0.87",
"UNIT": "A"
}, {
"PARAMCODE": "P4-1-1-0-0",
"VALUE": "0.82",
"UNIT": "NA"
}, {
"PARAMCODE": "P4-2-1-0-0",
"VALUE": "0",
"UNIT": "NA"
}, {
"PARAMCODE": "P4-3-1-0-0",
"VALUE": "0.99",
"UNIT": "NA"
}, {
"PARAMCODE": "P7-1-5-2-0",
"VALUE": "37923.31",
"UNIT": "k"
}]
},
{
"CODE": "13",
"TIME": "29-05-2022 14:41:00",
"STATUS": "1",
"SNAPSHOT": [{
"PARAMCODE": "P1-2-1-1-0",
"VALUE": "119.54",
"UNIT": "V"
}, {
"PARAMCODE": "P1-2-2-1-0",
"VALUE": "124.13",
"UNIT": "V"
}, {
"PARAMCODE": "P1-2-3-1-0",
"VALUE": "243.67",
"UNIT": "V"
}, {
"PARAMCODE": "P2-1-1-1-0",
"VALUE": "0",
"UNIT": "A"
}, {
"PARAMCODE": "P2-1-2-1-0",
"VALUE": "0",
"UNIT": "A"
}, {
"PARAMCODE": "P2-1-3-1-0",
"VALUE": "0.888",
"UNIT": "A"
}, {
"PARAMCODE": "P4-1-1-0-0",
"VALUE": "0",
"UNIT": "NA"
}, {
"PARAMCODE": "P4-2-1-0-0",
"VALUE": "0",
"UNIT": "NA"
}, {
"PARAMCODE": "P4-3-1-0-0",
"VALUE": "-0.99",
"UNIT": "NA"
}, {
"PARAMCODE": "P7-1-5-2-0",
"VALUE": "37923.64",
"UNIT": "k"
}]
}
]
}
}
}
},
{
"CDF": {
"UTILITYTYPE": {
"D1": {
"G1": "12388215",
"G22": {
"NAME": "L2"
}
},
"D5": {
"EVENT": [
{
"CODE": "7",
"TIME": "16-05-2022 04:28:21",
"STATUS": "0",
"SNAPSHOT": [{
"PARAMCODE": "P1-2-1-1-0",
"VALUE": "80.45",
"UNIT": "V"
}, {
"PARAMCODE": "P1-2-2-1-0",
"VALUE": "165.51",
"UNIT": "V"
}, {
"PARAMCODE": "P1-2-3-1-0",
"VALUE": "245.97",
"UNIT": "V"
}, {
"PARAMCODE": "P2-1-1-1-0",
"VALUE": "0",
"UNIT": "A"
}, {
"PARAMCODE": "P2-1-2-1-0",
"VALUE": "0",
"UNIT": "A"
}, {
"PARAMCODE": "P2-1-3-1-0",
"VALUE": "1.416",
"UNIT": "A"
}, {
"PARAMCODE": "P4-1-1-0-0",
"VALUE": "0",
"UNIT": "NA"
}, {
"PARAMCODE": "P4-2-1-0-0",
"VALUE": "0",
"UNIT": "NA"
}, {
"PARAMCODE": "P4-3-1-0-0",
"VALUE": "-0.99",
"UNIT": "NA"
}, {
"PARAMCODE": "P7-1-5-2-0",
"VALUE": "46407.46",
"UNIT": "k"
}]
},
{
"CODE": "7",
"TIME": "16-05-2022 06:30:30",
"STATUS": "1",
"SNAPSHOT": [{
"PARAMCODE": "P1-2-1-1-0",
"VALUE": "119.54",
"UNIT": "V"
}, {
"PARAMCODE": "P1-2-2-1-0",
"VALUE": "131.03",
"UNIT": "V"
}, {
"PARAMCODE": "P1-2-3-1-0",
"VALUE": "241.37",
"UNIT": "V"
}, {
"PARAMCODE": "P2-1-1-1-0",
"VALUE": "0",
"UNIT": "A"
}, {
"PARAMCODE": "P2-1-2-1-0",
"VALUE": "0",
"UNIT": "A"
}, {
"PARAMCODE": "P2-1-3-1-0",
"VALUE": "0.966",
"UNIT": "A"
}, {
"PARAMCODE": "P4-1-1-0-0",
"VALUE": "0",
"UNIT": "NA"
}, {
"PARAMCODE": "P4-2-1-0-0",
"VALUE": "0",
"UNIT": "NA"
}, {
"PARAMCODE": "P4-3-1-0-0",
"VALUE": "-0.99",
"UNIT": "NA"
}, {
"PARAMCODE": "P7-1-5-2-0",
"VALUE": "46407.79",
"UNIT": "k"
}]
}
]
}
}
}
}
]
Expected Output:
From the two documents above i want only document that satisfies the below condition.
i want to check in Event array and check only check for values with UNIT:V and then check
example: (108.04 - 163.21) or (163.21 - 271.26) or (271.26 - 108.04) > 30
How do i do this in mongodb aggregation
How do i achieve this in mongodb aggregation
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论