【问题标题】:Where i am doing wrong with find_one(collection, query) method implemented using predefined method of pymongo find_one() created in Databse class?使用 Databse 类中创建的 pymongo find_one() 的预定义方法实现的 find_one(collection, query) 方法在哪里做错了?
【发布时间】:2018-02-10 19:28:44
【问题描述】:

我在学习flask,由于趋势是第一个教授的应用程序是博客应用程序,所以我实现了一个数据库类来实现pymongo api的各种方法。类中定义了各种方法,如Implementation of Database Class and Query Outputs of find_one() method 所示。创建的所有其他方法都运行良好,但面临 find_one(collection, query) 的问题,无论数据库是否有条目,它总是返回无值。但是,API 的预定义方法返回正确的数据。我哪里做错了?

import pymongo
class Database:
    URI = 'mongodb://127.0.0.1:27017'
    DATABASE = None

    @staticmethod
    def initialize():
        client = pymongo.MongoClient(Database.URI)
        Database.DATABASE = client['BBloger']

    @staticmethod
    def insert(collection, data):
        Database.DATABASE[collection].insert(data)

    @staticmethod
    def remove(collection, query):
        Database.DATABASE[collection].remove(query)

    @staticmethod
    def find(collection, query):
        Database.DATABASE[collection].find(query)

    @staticmethod
    def find_one(collection, query):
        Database.DATABASE[collection].find_one(query)

我正在使用 Flask0.12.2 版本方法和 PyMongo3.6.0 版本

【问题讨论】:

    标签: python oop flask pymongo


    【解决方案1】:

    查询已解决,我忘记了默认情况下任何 python 方法都返回 None 值,这是我作为输出得到的。修改后的代码为:

    import pymongo
    class Database:
        URI = 'mongodb://127.0.0.1:27017'
        DATABASE = None
    
        @staticmethod
        def initialize():
            client = pymongo.MongoClient(Database.URI)
            Database.DATABASE = client['BBloger']
    
        @staticmethod
        def insert(collection, data):
            Database.DATABASE[collection].insert(data)
    
        @staticmethod
        def remove(collection, query):
            Database.DATABASE[collection].remove(query)
    
        @staticmethod
        def find(collection, query):
            return Database.DATABASE[collection].find(query)
    
        @staticmethod
        def find_one(collection, query):
            return Database.DATABASE[collection].find_one(query)
    

    【讨论】:

      猜你喜欢
      • 2019-03-31
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      • 1970-01-01
      • 2016-11-07
      • 2023-02-10
      • 2018-09-27
      • 2019-11-30
      相关资源
      最近更新 更多