Json mongo文档中BSON文档大小超过16 MB
我想在mongo文档中的数组中存储票证详细信息。它工作正常,直到文档大小达到16MB,然后我得到异常(更新后生成的文档大于16777216),程序突然终止。我无法拆分此文档,因为它存储了2016年下的所有机票详细信息 下面是我的文档结构Json mongo文档中BSON文档大小超过16 MB,json,mongodb,size,bson,exceed,Json,Mongodb,Size,Bson,Exceed,我想在mongo文档中的数组中存储票证详细信息。它工作正常,直到文档大小达到16MB,然后我得到异常(更新后生成的文档大于16777216),程序突然终止。我无法拆分此文档,因为它存储了2016年下的所有机票详细信息 下面是我的文档结构 { year:2016, purpose: ticketdetail, tickets:[ {ticketid:001, desc:"xyz", created:20161231}, {ticketid:002, desc:"x
{
year:2016,
purpose: ticketdetail,
tickets:[
{ticketid:001, desc:"xyz", created:20161231},
{ticketid:002, desc:"xyz", created:20161231},
{ticketid:003, desc:"xyz", created:20161231},
.......
.......
{ticketid:00N, desc:"xyz", created:20161231},
}]
}
您需要将文档拆分为单独的文档,可能位于不同的集合中。我不推荐GridFS,因为您不能在GridFS blob中查询数据 以下是建议的文档结构:
{
_id:ObjectId(“85bf0ef0b9692c0010978359”),
“ticketid”:“001”,
“描述”:“xyz”,
“已创建”:ISODate(“2016-12-31T00:00:00.000Z”)
}
,
{
_id:ObjectId(“85bed4257726f90010d4e21f”),
“ticketid”:“002”,
“描述”:“xyz”,
“已创建”:ISODate(“2016-12-31T00:00:00.000Z”)
}
关于这一结构的说明:
db.tickets.find({
“已创建”:{
$gte:ISODate(“2016-01-01”),
$lt:ISODate(“2017-01-01”)
}
}
});
您需要将文档拆分为单独的文档,可能在不同的集合中。我不推荐GridFS,因为您不能在GridFS blob中查询数据
以下是建议的文档结构:
{
_id:ObjectId(“85bf0ef0b9692c0010978359”),
“ticketid”:“001”,
“描述”:“xyz”,
“已创建”:ISODate(“2016-12-31T00:00:00.000Z”)
}
,
{
_id:ObjectId(“85bed4257726f90010d4e21f”),
“ticketid”:“002”,
“描述”:“xyz”,
“已创建”:ISODate(“2016-12-31T00:00:00.000Z”)
}
关于这一结构的说明:
db.tickets.find({
“已创建”:{
$gte:ISODate(“2016-01-01”),
$lt:ISODate(“2017-01-01”)
}
}
});
您可以将2016年的文档拆分为每个月的文档,否?@Veeram:这是每年的数据,我将在其中存储属于相应年份的票据,与我的每月和每日票据相同。没有拆分文档的任何想法???@Dickson您只需以某种方式拆分文档即可。16MB的限制(至少现在)不是可选的。@VinceBowdren谢谢,你对使用GridFS API存储大文档有什么想法吗?我们可以使用GridFS实现这一点,但我可以看到使用GridFS仅存储BLOB(多媒体)类型的示例:)您可以将2016年文档拆分为每个月的文档,否?@Veeram:这是每年的数据,我将在其中存储属于相应年份的票证,与我的每月和每日相同。没有拆分文档的任何想法???@Dickson您只需以某种方式拆分文档即可。16MB的限制(至少现在)不是可选的。@VinceBowdren谢谢,你对使用GridFS API存储大文档有什么想法吗?我们可以使用GridFS实现这一点,但我可以看到使用GridFS存储BLOB(多媒体)类型的示例:)谢谢,我已经拆分了文档,现在可以了!谢谢,我已经拆分了我的文档,现在可以了!