假设您有一个包含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'提供'无密钥错误' 一种方法是每次测试是否存在密钥,但如果您的文档有更多字段,则会大大增加您的代码。
最简单的解决方案是为每个文档提供集合中找到的所有可能字段。 在这种情况下,当不存在特定字段时(如任何SQL DB工作),所有文档将具有4个字段(名称,情绪,标题,last_say)和空值 mongoDB提供了这样的选择吗?
如果没有,你会如何应对这个问题?
thx!
答案 0 :(得分:1)
您不需要为每个字段存储null。使用dict.get来处理此类情况。将默认值作为第二个参数传递。
您的代码应该如何:
for user in users:
print("{n} said : {s}".format(n=user['name'], s=user.get('last_say', 'Nothing!')))