MongoDB:如何使用行号进行分组、排序,然后选择一定范围的行号?
我想将运行Python的客户端PC的工作负载推送到MongoDB服务器上,而不是推送到服务器上。目前,我已经将Mongo中的数据提取为CSV文件,然后通过Python计算并执行逻辑 CSV文件是一个巨大的25-30GB文件,需要对其进行分区和排序,然后从每个分区中选择一些行。下面是执行该任务的Python代码MongoDB:如何使用行号进行分组、排序,然后选择一定范围的行号?,mongodb,sorting,aggregation-framework,grouping,partitioning,Mongodb,Sorting,Aggregation Framework,Grouping,Partitioning,我想将运行Python的客户端PC的工作负载推送到MongoDB服务器上,而不是推送到服务器上。目前,我已经将Mongo中的数据提取为CSV文件,然后通过Python计算并执行逻辑 CSV文件是一个巨大的25-30GB文件,需要对其进行分区和排序,然后从每个分区中选择一些行。下面是执行该任务的Python代码 df['RN'] = df.sort_values(['timestamp'], ascending=[True]) \ .groupby(['A','B','C
df['RN'] = df.sort_values(['timestamp'], ascending=[True]) \
.groupby(['A','B','C','D','E','F','G']) \
.cumcount() + 1
df2=df.loc[(df['RN'] >= 30) & (df['RN'] <= 180)]
问题是
0我应该这样做吗
db.collection.aggregate(
[
{ "$limit": 200000 },
{
"$group":
{
"_id":
{
"TID": "$TID",
"Opt": "$Opt",
"DSN1": "$DSN1",
"DSN2": "$DSN2",
"Column": "$Column",
"Row": "$Row",
"CSN": { "$substr": ["$CSN", 2, -6] }
},
"details": {
"$push":
{
"A": "$A",
"B": "$B",
"C": "$C",
"D": "$D",
"timestamp": "$timestamp"
}
}
}
}
],
{
allowDiskUse: true
}
);