Skip to main content
 首页 » 编程设计

python之如何在 Flask 中使用 MongoEngine 一次向 Mongodb 文档添加多个条目

2025年05月04日16soundcode

如何使用 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)