2012-08-22 52 views
19

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

有没有任何怀疑,这将工作,或者我不应该这样做!?

回答

38

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 
+0

感谢。这就是我希望它能工作的原因:)因为我在这里有作者。我可能会问另一个问题:)在这个线程描述如何添加一个字段到一个集合:http://tiny.cc/xmofjw。添加一个字段到DynamicDocument,如下所述:http:// tiny。 cc/4iofjw,效果相同(=更新整个集合)或者将.tags(从示例中)添加到文档中。不知何故,如果我可以定义字段的类型在运行时添加到dynamicDocument。但也许这不是mongoDB的想法。刚开始并试图理解。 –

+0

是否仅包含原始pymongo可能用于查询?我试图让db.your_collection.update({},{$ set:{“new_field”:1}},false,true)工作,但没有运气。 –

+1

你可以在文档类中定义它,只要不需要,你就不会遇到问题。你也可以做一个pymongo更新来设置它 - 但如果它没有在文档中定义,那么除非你使用DynamicDocument,否则你不会看到该值。 – Ross