【发布时间】:2021-03-10 20:47:29
【问题描述】:
[{
"_id": {
"$oid": "5fb92c5d256cb4fd463f0944"
},
"ppCode": "A0007",
"ppName": "ANGULLIA PARK OFF STREET",
"parkingSystem": "Electronic Parking System",
"vehCat": "Car",
"availableLot": 210,
"parkCapacity": 268,
"startTime": 700,
"endTime": 1100,
"rates": [
{
"weekdayMin": 30,
"weekdayRate": 1.3,
"satdayMin": 30,
"satdayRate": 1.3,
"sunPHMin": 30,
"sunPHRate": 0.7
}
],
"modified": "2333"
}, {
"_id": {
"$oid": "5fb92c65256cb4fd463f0ac3"
},
"ppCode": "Y0019",
"ppName": "YAN KIT ROAD / CANTONMENT ROAD OFF ST",
"parkingSystem": "Electronic Parking System",
"vehCat": "Motorcycle",
"availableLot": 0,
"parkCapacity": 8,
"startTime": 2230,
"endTime": 700,
"rates": [
{
"weekdayMin": 510,
"weekdayRate": 0.65,
"satdayMin": 510,
"satdayRate": 0.65,
"sunPHMin": 510,
"sunPHRate": 0.65
}
],
"modified": "2333"
}]
以上是我的 MongoDB 文档。我正在尝试使用聚合复制我在 python 中所做的事情。以下是我尝试过的。但由于它位于数组对象内,当我使用 rates.0.weekdayRate 时乘法无法工作,当我使用以下查询时,我得到一个空值返回。
Python 代码:
result = carparkCollection.find_one({"ppName": ppname, "vehCat": mvtype})
for r in result["rates"]:
weekday = (parktime / r["weekdayMin"]) * r['weekdayRate']
db.carpark.aggregate(
[
{
$project:
{
"_id": 1,
"ppName": 1,
"weekdayMin": {
$multiply: [
{
$divide: [
{
$multiply: [9, 60]
},
"$rates[0].weekdayMin"
]
},
"$rates[0].weekdayRate"]
}
}
}
]
)
请帮帮我!谢谢
【问题讨论】:
标签: mongodb pymongo aggregation