如果这个问题还没有解决,不妨参考下面的想法:
1、MongoDB中推荐使用aggregation,而不推荐使用map-reduce;
2、您的需求中,很重要的一点是获取Forumdata的长度:数组的长度,从而找到数组长度最长的document。您原文说Forumdata是列表(在MongoDB中应该是数组);MongoDB提供了$size运算符号取得数组的大小。
请参考下面的栗子:
> db.data.aggregate([ {$project : { "_id" : 1, "name" : 1, "num" : 1, "length" : { $size : "$num"}}}])
{ "_id" : ObjectId("58e631a5f21e5d618900ec20"), "name" : "a", "num" : [ 12, 123, 22, 34, 1 ], "length" : 5 }
{ "_id" : ObjectId("58e631a5f21e5d618900ec21"), "name" : "b", "num" : [ 42, 22 ], "length" : 2 }
{ "_id" : ObjectId("58e631a7f21e5d618900ec22"), "name" : "c", "num" : [ 49 ], "length" : 1 }
3、有了上面的数据后,然后可以利用aggregation中的$sort,$group等找到满足您的需求的Document的objectId,具体做法可以参考下面的帖子:
https://segmentfault.com/q/10...
4、最后批量删除相关的ObjectId
类似于:
var dupls = [] 保存要删除的objectId
db.collectionName.remove({_id:{$in:dupls}})
供参考。
Love MongoDB! Have Fun!
戳我<--请戳左边,就在四月!MongoDB中文社区深圳用户大会开始报名啦!大神云集!
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…