为什么googleappengine NDB数据存储中的未知数据既有“-”又有“null”?

2024-04-26 11:14:20 发布

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

我最近更新了一个实体模型以包含一些额外的属性,并注意到一些奇怪的事情。对于从未编写过的属性,Datastore query页显示“-”,但是对于我在Python中显式设置为None的属性,它显示“null”。你知道吗

在SQL中,这两种情况都是null。当我查询一个同时具有这两种类型的未知属性的实体时,它们都读作None,这符合这个想法。你知道吗

那么,如果我不能在编程上区分“从不写入”和“设置为None”,为什么NDB数据存储查看器要区分它们呢?你知道吗


Tags: 数据实体none类型sql属性编程情况
1条回答
网友
1楼 · 发布于 2024-04-26 11:14:20

您必须明确地将该值设置为NULL,否则它将不会存储在数据存储中,并且您会在数据存储查看器中将其视为丢失。你知道吗

这是一个重要的区别。空值可以编入索引,因此您可以检索出生日期为空的实体列表。另一方面,如果在未知的情况下不设置出生日期,则无法检索缺少date of birth属性的实体列表—您必须遍历所有实体才能找到它们。你知道吗

另一个区别是空值占用数据存储中的空间,而缺少的值则不占用空间。你知道吗

相关问题 更多 >