[英]Pymongo : Aggregate Date Range Query with Date as String
我有一個如下集合:示例 {'_id': {'day': '2020-12-04', 'device': {'device': 'DH002'}}, 'value': {'average': 44.5,“最大”:50,“最小”:38}}
問題a:我正在嘗試根據用戶輸入的日期范圍查詢此集合。查詢如下。問題是我得到output 僅用於開始日期,而不是直到結束日期的整個范圍。 不知道出了什么問題。
問題 b。 如果我想添加設備 ID 作為另一個查詢參數,我該怎么做..
extract = list( weather_dbh.dailyreports.aggregate([
{ "$match": {
"$expr": {
"$and": [
{
"$gte": [
{ "$dateFromString": { "dateString": "$_id.day", "format": "%Y-%m-%d" }},
start
]
},
{
"$lt": [
{ "$dateFromString": { "dateString": "$_id.day", "format": "%Y-%m-%d" }},
end
]
}
]
}
}}
]))
以下工作按預期進行:
mongos> var start="2020-12-05"
mongos> var end="2020-12-06"
mongos> var thedevice="devid"
mongos> db.weather_dbh.dailyreports.aggregate([ {$match:{ deviceid:thedevice , $and:[ {"_id.day":{$gte:start}}, {"_id.day":{$lt:end }} ] } } ])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.