Python 如何检索文档的嵌套列表
我正在使用MongoDB和Flask。在我的模型中,我有以下内容:Python 如何检索文档的嵌套列表,python,mongodb,flask,wtforms,Python,Mongodb,Flask,Wtforms,我正在使用MongoDB和Flask。在我的模型中,我有以下内容: class Post(db.Document): types = db.StringField(max_length=255, required=True, default="Feature") geometry = db.ListField(db.EmbeddedDocumentField('Geometry')) properties = db.ListField(db.EmbeddedDocumen
class Post(db.Document):
types = db.StringField(max_length=255, required=True, default="Feature")
geometry = db.ListField(db.EmbeddedDocumentField('Geometry'))
properties = db.ListField(db.EmbeddedDocumentField('Properties'))
class Geometry(db.EmbeddedDocument):
types = db.StringField(default="Point",required=True)
coordinates = db.ListField(db.EmbeddedDocumentField('Coordinates'))
class Coordinates(db.EmbeddedDocument):
longitude = db.StringField(max_length=255)
latitude = db.StringField(max_length=255)
class Properties(db.EmbeddedDocument):
title = db.StringField(max_length=255, required=True)
types = db.StringField(max_length=255, required=True)
location_name = db.StringField(max_length=255, required=True)
url = db.StringField(max_length=255, required=True)
feed_url = db.StringField(max_length=255, required=True)
content_url = db.StringField(max_length=255, required=True)
date_added = db.StringField(max_length=255, required=True)
date_crawled = db.StringField(max_length=255, required=True)
到目前为止,我正在使用:
Post.objects.get_or_404(title=title)
从类帖子中检索所有内容
我的问题是:有人知道如何检索listfield属性并获取url的值吗
我之所以需要它,是因为我正在尝试重新填充表单,以便当用户按下“编辑”时,它将显示用户先前在表单中添加的内容的详细信息
当我尝试时:
Properties.objects.get_or_404(url=url)
它给了我
AttributeError:type对象“Properties”没有属性“objects”
您使用的EmbeddedDocument
所以它只是Post
模型的路径,而EmbeddedDocument
没有对象属性,因为它只是文档
作为DictField
的路径
要查找Post
whereproperties.url==url
请使用下一个代码:
Post.objects.get_or_404(title=title, properties__url=url)
但您将获得Post
实体,并且必须手动查找特定属性。例如:
class Post(db.Document):
def get_property_by_url(self, url):
for property in self.properties:
if property.url == url:
return property
abort(404)