Dav*_* K. 5 mongoengine flask-mongoengine
我正在使用 Flask/Mongoengine-MongoDB 来构建我最新的 Web 应用程序。
我熟悉 Pymongo,但对像 Mongoengine 这样的对象文档映射器很陌生。
我已经设置了数据库和集合,我基本上只想查询它并返回相应的对象。这是我的 models.py...
from app import db
# ----------------------------------------
# Taking steps towards a working backend.
# ----------------------------------------
class Property(db.Document):
# Document variables.
total_annual_rates = db.IntField()
land_value = db.IntField()
land_area = db.IntField()
assessment_number = db.StringField(max_length=255, required=True)
address = db.StringField(max_length=255, required=True)
current_capital_value = db.IntField
valuation_as_at_date = db.StringField(max_length=255, required=True)
legal_description = db.StringField(max_length=255, required=True)
capital_value = db.IntField()
annual_value = db.StringField(max_length=255, required=True)
certificate_of_title_number = db.StringField(max_length=255, required=True)
def __repr__(self):
return address
def get_property_from_db(self, query_string):
if not query_string:
raise ValueError()
# Ultra-simple search for the moment.
properties_found = Property.objects(address=query_string)
return properties_found[0]
Run Code Online (Sandbox Code Playgroud)
我得到的错误如下:IndexError: no such item for Cursor instance
这是完全有道理的,因为该对象没有指向任何集合。尽管浏览了文档一段时间,我仍然不知道如何做到这一点。
你们中有人知道我如何正确地将我的Property班级链接到我已经存在的数据库和集合吗?
将类链接到现有集合的方法可以这样完成,使用meta:
class Person(db.DynamicDocument):
# Meta variables.
meta = {
'collection': 'properties'
}
# Document variables.
name = db.StringField()
age = db.IntField()
Run Code Online (Sandbox Code Playgroud)
然后,当使用类对象时,人们实际上可以利用 MongoEngine 所期望的这一功能:
desired_documents = Person.objects(name="John Smith")
john = desired_documents[0]
Run Code Online (Sandbox Code Playgroud)
或者类似的东西:)希望这有帮助!
| 归档时间: |
|
| 查看次数: |
4125 次 |
| 最近记录: |