【问题标题】:Pymongo - Query all strings with certain datePymongo - 查询具有特定日期的所有字符串
【发布时间】:2017-10-01 06:53:13
【问题描述】:

我有一个 mongo db ('test') 和一个集合 ('main'),其中包含一个存储日期时间的字段。示例日期如下:

2017-07-20T22:56:28.121000Z

日期存储为字符串。

我想查询 2017 年 7 月 20 日发生的所有数据的集合并将其拉入熊猫数据框。以下是我正在尝试的代码:

import datetime
the_date = datetime.datetime(2017,7,20) # Date I want to query

import pymongo
import pandas as pd
from pymongo import MongoClient
client = MongoClient()
db = client.test
collection = db.main

data = pd.DataFrame(list(collection.find({'time': { '$in':[the_date]}})))

data.head() 

这只是返回一个空帧。我想知道如何在我正在寻找的特定日期查询 mongodb 的所有数据。我明白为什么 $in 运算符不起作用,但没有更好的方法。

【问题讨论】:

    标签: python mongodb pandas


    【解决方案1】:

    您正在将实际日期时间与字符串混合。 MongoDB 不会将带有日期时间的 $in 自动转换为 str()equiv。尝试这个;注意锚点:

    data = pd.DataFrame(list(collection.find({'time': {'$regex': '^2017-07-20'}} )));
    

    【讨论】:

    • 很好的解决方案。我尝试不使用锚点并收到一个空帧,因此花絮非常重要。
    猜你喜欢
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    • 2021-02-13
    • 2021-06-18
    • 2015-10-25
    相关资源
    最近更新 更多