【问题标题】:Combine MongoDb clients: pyMongo and MongoEngine结合 MongoDb 客户端:pyMongo 和 MongoEngine
【发布时间】:2020-02-26 16:47:55
【问题描述】:

在我的 Web 应用程序中,我使用 Flask 作为框架,使用 MongoDB 作为持久层。有多个库可以连接到MongoDB。我目前正在使用低级库pyMongo。但是,对于某些型号,我想将其与 MongoEngine 结合使用。

我看到的唯一方法是创建两个客户端的实例。这看起来是一只大狗。有没有更简单的方法来组合这些库(pyMongoMongoEngine),以便它们使用相同的数据库(具有不同的集合)。

【问题讨论】:

    标签: mongodb flask pymongo mongoengine


    【解决方案1】:

    目前无法使用现有的Pymongo 客户端连接MongoEngine,但您可以做相反的事情;如果连接 MongoEngine,则可以检索其底层 pymongo 客户端或数据库实例。

    from mongoengine import connect, get_db, Document, StringField
    
    conn = connect()    # connects to the default "test" database on localhost:27017
    
    print(conn)    # pymongo.MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True, read_preference=Primary())
    
    db = get_db()  # pymongo.Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True, read_preference=Primary()), u'test')
    print(db)
    
    class Person(Document):
        name = StringField()
    
    
    coll = Person._get_collection()
    print(coll)    # pymongo.Collection(Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True, read_preference=Primary()), u'test'), u'person')
    

    【讨论】:

      猜你喜欢
      • 2020-08-13
      • 1970-01-01
      • 2014-08-16
      • 2012-06-13
      • 1970-01-01
      • 1970-01-01
      • 2021-08-13
      • 2021-07-30
      • 2016-04-29
      相关资源
      最近更新 更多