【问题标题】:Use MongoEngine and PyMongo together一起使用 MongoEngine 和 PyMongo
【发布时间】:2012-08-17 14:34:14
【问题描述】:

我想在我的下一个项目中使用MongoEngine。现在我想知道我是否也可以在同一个项目中直接使用PyMongo。只是为了我需要一些不直接通过 mongoengine 支持的非常特殊的东西。

是否有人怀疑这会奏效,或者我不应该这样做!?

【问题讨论】:

    标签: mongodb pymongo mongoengine


    【解决方案1】:

    这里是 MongoEngine 的作者 - MongoEngine 是基于 pymongo 构建的,因此您当然可以放入 pymongo - 或在代码中使用原始 pymongo!

    有一些文档助手允许您访问 MongoEngine 中的原始 pymongo 方法,例如:

    class Person(Document):
        name = StringField()
    
    # Access the pymongo collection for the Person document
    collection = Person._get_collection()
    collection.find_one()  # Use raw pymongo to query data
    

    【讨论】:

    • 谢谢。这就是我希望它能起作用的方式:) 因为我在这里有作者。我可能会问另一个问题 :) 在此线程中,描述了如何将字段添加到集合中:tiny.cc/xmofjw .. 已将字段添加到 DynamicDocument,如此处所述:tiny.cc/4iofjw,效果相同(=更新整个集合)还是我只将.tags(来自示例)添加到文档中。如果我可以定义我在运行时添加到动态文档的字段的类型,那将是很棒的。但也许这不是 mongoDB 的想法。刚刚开始并试图理解。
    • 通过 raw 包含 pymongo 是否只能用于查询?我试图让 db.your_collection.update({},{$set : {"new_field":1}},false,true) 工作,但没有运气。
    • 您可以在文档类中定义它,只要不需要,您就不会遇到问题。您也可以进行 pymongo 更新来设置它 - 但如果它没有在文档中定义,那么除非您使用 DynamicDocument,否则您将看不到该值
    • 好的,我明白了。非常感谢。我会试一试的。
    • @Tom,不,它不只是用于查询 - update 应该可以正常工作。例如:User._get_collection().update({}, { '$set': { 'my_field': 1 } }, multi=True)
    猜你喜欢
    • 2020-08-13
    • 2015-07-16
    • 1970-01-01
    • 2020-02-26
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    相关资源
    最近更新 更多