我想将票证详细信息存储在mongo文档中的数组中。它工作正常,直到文档大小达到16MB,之后我得到异常(更新后的结果文件大于16777216)并且程序突然终止。我不能拆分这个文件因为它存储了2016年以下的所有门票细节。
这里是我的文档结构。
{
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},
}]
}
答案 0 :(得分:1)
您需要将文档拆分为单独的文档,可能在不同的集合中。我不推荐GridFS,因为你无法在GridFS blob中查询数据。
以下是建议的文档结构:
{
_id: ObjectId("85bf0ef0b9692c0010978359"),
"ticketid" : "001",
"desc" : "xyz",
"created" : ISODate("2016-12-31T00:00:00.000Z")
}
,
{
_id: ObjectId("85bed4257726f90010d4e21f"),
"ticketid" : "002",
"desc" : "xyz",
"created" : ISODate("2016-12-31T00:00:00.000Z")
}
关于这种结构的说明:
db.tickets.find({
"created" : {
$gte: ISODate("2016-01-01"),
$lt: ISODate("2017-01-01")
}
}
});