如何使用 MongoEngine/Flask-MongoEngine 在 Flask 中一次向文档添加多个条目?
我试图遍历包含我的条目的字典。我稍微简化了示例,但最初数据是我的 Wordpress 输出的 RSS 文件,我通过 feedparser
对其进行了解析。
但问题显然是我无法在保存到数据库之前动态生成保存我的条目的变量。
这是我到目前为止尝试过的。
如何将条目批量添加到我的 MongoDB 数据库?
# model
class Entry(db.Document):
created_at = db.DateTimeField(
default=datetime.datetime.now, required=True),
title = db.StringField(max_length=255, required=True)
link = db.StringField(required=True)
# dictionary with entries
e = {'entries': [{'title': u'title1',
'link': u'http://www.me.com'
},
{'title': u'title2',
'link': u'http://www.me.com/link/'
}
]
}
# multiple entries via views
i = 0
while i<len(e['entries']):
post[i] = Entry(title=e['entries'][i]['title'], link=e['entries'][i]['title'])
post[i].save();
i += 1
编辑 1:
我考虑过一起跳过变量并将字典翻译成 mongoengine
可以理解的形式。
因为当我手动创建列表时,我可以将它们批量输入到 MongoDB 中:
newList = [RSSPost(title="test1", link="http://www.google.de"),
RSSPost(title="test2", link="http://www.test2.com")]
RSSPost.objects.insert(newList)
这行得通,但我无法将其完全转化为我的问题。
我试过了
f = []
for x in e['entries']:
f.append("insert " + x['link'] + " and " + x['title'])
但如您所见,我无法重新创建所需的列表。
如何正确执行?
最佳答案
# dictionary with entries
e = {'entries': [{'title': u'title1',
'link': u'http://www.me.com'
},
{'title': u'title2',
'link': u'http://www.me.com/link/'
}
]
}
您的数据/案例与您发布的示例有何不同?只要我没有遗漏任何东西,您就应该能够实例化 Entry
对象,例如:
entries = []
for entry in e['entries']:
new_entry = Entry(title=entry['title'], link=entry['link'])
entries.append(new_entry)
Entry.objects.insert(entries)
关于python - 如何在 Flask 中使用 MongoEngine 一次向 Mongodb 文档添加多个条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23290771/