Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb nosql不一致的数据结构_Mongodb_Nosql - Fatal编程技术网

Mongodb nosql不一致的数据结构

Mongodb nosql不一致的数据结构,mongodb,nosql,Mongodb,Nosql,我是nosql(MongoDB)的新手,所以对我放松点 我正在从各种网页上抓取json ld,并希望存储/调用数据。但是,值类型不断变化。例如,有时“author”字段使用“organization”类型,有时是“person”类型,有时只是字符串,有时只是缺少 我应该将数据转换为某种类型的标准吗? 每个对象都应该放在自己的集合中并被引用吗? 你如何处理显示器的不同 寻找关于如何处理不一致数据结构的经验词汇或优秀文章的链接。没有Sql数据库的关键在于它的模式较少,并且结构可能因文档而异,因此我认

我是nosql(MongoDB)的新手,所以对我放松点

我正在从各种网页上抓取json ld,并希望存储/调用数据。但是,值类型不断变化。例如,有时“author”字段使用“organization”类型,有时是“person”类型,有时只是字符串,有时只是缺少

我应该将数据转换为某种类型的标准吗? 每个对象都应该放在自己的集合中并被引用吗? 你如何处理显示器的不同


寻找关于如何处理不一致数据结构的经验词汇或优秀文章的链接。

没有Sql数据库的关键在于它的模式较少,并且结构可能因文档而异,因此我认为这里没有问题

我想您是在问您应该如何在应用程序业务逻辑中处理it,因此我的建议如下:

您可以将作者另存为一个嵌入的子文档,该子文档始终具有一个名为“type”的字段(作为值的枚举:字符串、人员、组织等),并在获取数据时执行相应操作

例如,如果作者仅仅是一个字符串,那么文档看起来就像:

{
…,
 “author”: {
    “type”: “String”,
    “text”: <text>
 }
}
{
…,
“作者”:{
“类型”:“字符串”,
“文本”:
}
}
如果是个人类型,则:

{
…,
 “author”: {
    “type”: “Person”,
    “first_name”: <first name>,
    “last_name”: <last name> 
 }
}
{
…,
“作者”:{
“类型”:“人”,
“名字”:,
“姓氏”:
}
}

没有Sql数据库的关键在于,它的模式较少,而且文档之间的结构可能会有所不同,因此我认为这里没有问题

我想您是在问您应该如何在应用程序业务逻辑中处理it,因此我的建议如下:

您可以将作者另存为一个嵌入的子文档,该子文档始终具有一个名为“type”的字段(作为值的枚举:字符串、人员、组织等),并在获取数据时执行相应操作

例如,如果作者仅仅是一个字符串,那么文档看起来就像:

{
…,
 “author”: {
    “type”: “String”,
    “text”: <text>
 }
}
{
…,
“作者”:{
“类型”:“字符串”,
“文本”:
}
}
如果是个人类型,则:

{
…,
 “author”: {
    “type”: “Person”,
    “first_name”: <first name>,
    “last_name”: <last name> 
 }
}
{
…,
“作者”:{
“类型”:“人”,
“名字”:,
“姓氏”:
}
}

这是一个开放式问题。听起来你在处理半结构化数据。使用您的示例,理想情况下,
作者
应该是一致的,例如,通常这是一个
字符串
类型或类似类型。但是,如果您有多个数据源,这有时是不可能的。MongoDB的文档模型可以处理您对同一字段的不同数据类型的需求,但是最好了解更多关于MongoDB的信息,看看它是否适合您的用例。有关更多信息,请参阅。这是一个开放式问题。听起来你在处理半结构化数据。使用您的示例,理想情况下,
作者
应该是一致的,例如,通常这是一个
字符串
类型或类似类型。但是,如果您有多个数据源,这有时是不可能的。MongoDB的文档模型可以处理您对同一字段的不同数据类型的需求,但是最好了解更多关于MongoDB的信息,看看它是否适合您的用例。有关更多信息,请参阅。