Python 获取其他文档中存在字段(且无值)的文档

Python 获取其他文档中存在字段(且无值)的文档,python,mongodb,Python,Mongodb,假设您有一个包含2个文档的集合: { 'name' : 'lutin1', 'mood' : 'good', 'last_say' : 'hello you' } { 'name' : 'lutin2', 'mood' : 'great' 'title' : 'mayor' } 我们使用mongodb的无模式特性。 但如果我需要显示内容: for user in users: print("{n} said : {s}".format(n=user['name'], s=user['l

假设您有一个包含2个文档的集合:

{ 'name' : 'lutin1', 'mood' : 'good', 'last_say' : 'hello you' }
{ 'name' : 'lutin2', 'mood' : 'great' 'title' : 'mayor' }
我们使用mongodb的无模式特性。 但如果我需要显示内容:

for user in users:
    print("{n} said : {s}".format(n=user['name'], s=user['last_say']))
将为“lutin2”提供“无密钥错误” 一种方法是每次测试键是否存在,但如果文档中有更多的字段,那么代码就会大量增加

最简单的解决方案是,对于每个文档,在集合中找到所有可能的字段。 在这种情况下,当不存在特定字段时,所有文档都将有4个字段(name、mood、title、last_say)为空值(与任何SQL DB一样) mongoDB是否提供了这样的选项

如果没有,你将如何处理这个问题


谢谢

不需要为每个字段存储空值。用于处理此类情况。将默认值作为第二个参数传递

您的代码应该是什么样子的:

for user in users:
    print("{n} said : {s}".format(n=user['name'], s=user.get('last_say', 'Nothing!')))