Python 2.7-Pymongo collection.find()返回空结果

时间:2018-07-12 16:38:56

标签: python database mongodb collections pymongo

我创建了一个classes.py,其中包含用于通过MongoDB和pymongo管理的数据库的类,并带有一些方法,例如:

from pymongo import MongoClient 
import pandas as pd

class database:
    global Date
    Date = 'Date'
    global Variable
    Variable = 'Variable'
    global Value
    Value = 'Value'

    def __init__(self, name):
        self.name = str(name)
        self.db = ''

    def login(self, address, port, db_user, db_password):
        mongo_client = MongoClient(host=str(address),port=int(port),
                                   username=str(db_user),
                                   password=str(db_password))
        db_login = mongo_client[self.name]
        return db_login

    def initialize(self, db_login):
        db_login.create_collection('datasets')

    def first_last_day_DB(self, db_login, var):
        db_name = db_login.name
        db_collection = db_login.collection_names()
        collection = db_login[db_name][db_collection]
        df = pd.DataFrame(list(collection.find({"Variable":'%s' % var}).sort("Date"))) 
        oldest = df.Date[0]
        newest = df.Date[len(df)-1]
        return oldest, newest

,我想从数据库中提取数据。我加载了一些数据。 但是,如果我拨打电话,例如:

import classes
database_1 = classes.database('DB_name')
db_1 = database_1.login('192.168.1.100',3308,'user','password')
first, last = database_1.first_last_day_DB(db_1, 'variable_name')

我有电话返回的empy数据框。

有人知道为什么会这样吗?

其他操作(登录,初始化,...以及我在同一类中定义的其他方法来更新数据库上的数据)效果很好。

0 个答案:

没有答案