【发布时间】:2023-04-05 15:12:01
【问题描述】:
总的来说,我对 MongoDB 和编程语言还很陌生,不太确定如何实现以下目标:
我有一个 mongodb 集合,其中包含许多文档,如下所示,它们都具有相同的结构,只是在某些字段中改变了一些值:
{
"status": "ok",
"data": {
"aqi": 48,
"idx": 8495,
"attributions": [
{
"url": "http://www.juntadeandalucia.es/medioambiente/site/portalweb/",
"name": "Consejería de Medio Ambiente y Ordenación del Territorio :: Junta de Andalucía"
},
{
"url": "http://www.eea.europa.eu/themes/air/",
"name": "European Environment Agency"
},
{
"url": "https://waqi.info/",
"name": "World Air Quality Index Project"
}
],
"city": {
"geo": [
37.3485317,
-5.9877044
],
"name": "Bermejales, Sevilla, Spain",
"url": "https://aqicn.org/city/spain/andalucia/sevilla/bermejales"
},
"dominentpol": "o3",
"iaqi": {
"co": {
"v": 3.2
},
"no2": {
"v": 2.8
},
"o3": {
"v": 47.6
},
"p": {
"v": 1012.1
},
"pm10": {
"v": 4
},
"so2": {
"v": 2.6
},
"w": {
"v": 6.7
}
},
"time": {
"s": "2019-05-14 12:00:00",
"tz": "+02:00",
"v": 1559487600
},
"debug": {
"sync": "2019-05-14T11:38:05+09:00"
}
}
}
我需要实现的是提取字段 "data.time.s" 和 "data.iaqi.co.v" 的值(对于集合中的每个文档)在两个确切日期之间,并将它们放在具有这种确切结构的新数组中:
示例:
"获取日期 "2019-05-14" 和 之间 "co" 字段的所有值“2019-05-29”
最终输出:
日期、值
2019-05-14 12:00:00,3.2
2019-05-15 00:00:00,14.5
2019-05-17 05:00:00,1
2019-05-19 20:00:00,2.3
2019-05-28 08:00:00,33.4
2019-05-28 10:00:00,18.8
2019-05-28 12:00:00,11.5
2019-05-28 13:00:00,12.4
2019-05-29 06:00:00,6.4
我试图搜索这个问题,但没有找到任何相关内容。
我所达到的最远的地方是使用 find 操作符获取所需的两个字段:
db.getCollection("prueba2").find(
{
"data.time.s" : {
"$gte" : "2019-05-14",
"$lte" : "2019-05-29"
}
},
{
"data.iaqi.co.v" : "$data.iaqi.co.v",
"data.time.s" : "$data.time.s",
"_id" : NumberInt(0)
}
);
但是通过该操作,我还从父字段中获得了所有结构:
{
"data" : {
"iaqi" : {
"co" : {
"v" : 3.2
}
},
"time" : {
"s" : "2019-05-14 12:00:00"
}
}
}
// ----------------------------------------------
{
"data" : {
"iaqi" : {
"co" : {
"v" : 14.5
}
},
"time" : {
"s" : "2019-05-15 00:00:00"
}
}
}
// ----------------------------------------------
etc etc etc
我不确定我需要获得的最终输出是否可以通过一个 MongoDB 查询操作来实现,也许我需要先按照我的方式提取数据,然后在 Javascript 中使用该 JSON对这些字段进行第二次提取,以生成具有我需要的“干净”最终输出结构的最终文档。
如果有人知道如何实现这一点,我相信将来会有很多人需要解决方案。
非常感谢
【问题讨论】:
标签: arrays mongodb search extract