如何编写 pymongo 查询以获取基于日期时间的所有数据 Python

How to write pymongo query to get all the data based on date time Python

我在 mongodb 中有 100 多个文档,其中包含以下数据:

{
    "Length": 2.9,
    "Number": 33,
    "Stop Time": "2020-09-20T11:05:58",
    "Start Time": "2020-09-20T11:05:53"
}

我想要一个查询来获取所有 Start Time 大于 2020-09-20T11:00:00 且小于 "Stop Time": "2020-09-21T11:10:00"

的文档

为此我在下面写了查询

query = [{'$match': {'Start Time': {'$gte': '2020-09-20T11:00:00'}, 'Stop Time': {'$lt': '2020-09-21T11:10:00'}}}]

所以我想获取日期时间 2020-09-20T11:00:002020-09-21T11:10:00 之间的所有文档。

在 mongodb 中,我手动检查并且在上述日期时间范围内有 56 个文档,但是 运行 这个查询,我只能得到 2020-09-20 并且有没有 2020-09-21 的数据。我的查询中是否缺少任何内容

data_list = []
document = opc_collection.aggregate(query)
for x in document:
    data_list.append(x)
print(data_list)

编辑:

下面是数据库中字符串转换为日期时间后的数据:

{
    "Length": 2.9,
    "Number": 33,
    "Stop Time": "2020-09-20 11:05:58",
    "Start Time": "2020-09-20 11:05:53"
}

query = [{'$match': {'Start Time': {'$gte': '2020-09-20 11:00:00'}, 'Stop Time': {'$lt': '2020-09-21 11:10:00'}}}]

你的日期2020-09-20T11:00:00是字符串类型。您必须将其转换为日期时间。

datetime.datetime.strptime("2020-09-20T11:00:00", '%Y-%m-%dT%H:%M:%S')