我有一个拥有600多万份文件的收藏品F.该集合具有以下结构
{
"_id" : ObjectId("5718277b3f33da6dfaeaec88"),
"f_id" : "F1",
"f_date" : ISODate("2017-02-01T00:00:00.000+0000"),
"effectiveTimeStamp" : ISODate("2016-11-01T00:00:00.000+0000"),
"level1" : [
{
"sequence" : "1",
"level2" : [
{"c_Code" : "TR",
"level3" : [{ "flevel_total" : 51
}
]
}
]
}
]
}
我需要从这些文档中解构几个数组字段以便进一步处理。
minfdate <-as.POSIXct('2016-12-01', tz = "GMT")
maxfdate <- as.POSIXct('2017-01-10', tz = "GMT")
coll_name = 'test.F'
cmd_list = list(
mongo.bson.from.list(list("$match" =
list( "$and" = list(list("Date" = list("$gte" = as.POSIXct(minfdate, tz = "GMT"))),list("Date" = list("$lte" = as.POSIXct(maxfdate, tz = "GMT")))))
)),
mongo.bson.from.JSON('{"$unwind": "$level1"}'),
mongo.bson.from.JSON('{"$unwind": "$level1.level2"}'),
mongo.bson.from.JSON('{"$unwind": "$level1.level2.level3"}'),
mongo.bson.from.JSON('{"$project": {
"f_Id": "$f_Id",
"f_Date": "$Date",
"sequence": "$level1.sequence",
"effectiveTimeStamp" : "$effectiveTimeStamp",
"c_Code": "$level1.level2.c_code",
"f_Total": "$level1.level2.level3.flevel_total",
}
}')
)
f_output = mongo.aggregation(db, coll_name, cmd_list)
当我使用较大的日期范围来过滤记录时,我在mongo.aggregation(db,coll_name,cmd_list)中收到错误&#34; 错误: mongoDB错误:10。请检查?mongo.get.err以获取更多详细信息。 &#34;
但是,如果我每次都使用较小的日期范围多次运行相同的程序,则代码会成功运行。我已经尝试将会话超时时间增加到一个较大的值,以检查是否有任何区别,但即使这样做也不起作用。 我在这里做错了什么想法?感谢我能解决这个问题的任何帮助。