获取具有在其他文档中出现的字段(无值)的文档

2024-10-01 09:39:47 发布

您现在位置:Python中文网/ 问答频道 /正文

假设您有一个包含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'一个'no key error' 一种方法是每次测试键是否存在,但是如果文档中有更多的字段,那么代码就会大量增加

对于每个文档,最简单的解决方案是在集合中找到所有可能的字段。 在这种情况下,所有文档都有4个字段(name、mood、title、last\u say),当某个特定字段不存在时,这些字段的值为null(因为任何SQL DB都可以工作) mongoDB提供了这样的选择吗

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

谢谢


Tags: name文档youhellotitlemongodblastsay
1条回答
网友
1楼 · 发布于 2024-10-01 09:39:47

不需要为每个字段都存储null。使用dict.get来处理这种情况。将默认值作为第二个参数传递

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

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

相关问题 更多 >