mongodb去重

1.功能里需要根据有一个字段来判断是否重复,比如叫做ownnerId,凡是存在的就丢弃.于是我用到了distinct这个方法,但是这段时间随着数据量逐渐增大,出现了一个问题:

OperationFailure: distinct too big, 16mb cap

这是命令行里边的错误,说distinct返回的结果太大了,超过了16M.请问各位高手能否贡献一些方法.

需求:每次通过检查数据库中ownnerId这个字段是否出现了,其中数据库是一直在更新的,而且这个不存在的ownnerId在一会处理后就会存到数据库中去,所以要求每次判断都要重新检查一遍数据库中这个ownner字段.因此对速度的要求也比较高.
各位大神瞅瞅,求给个意见.

阅读 6.2k
2 个回答

如果我理解的对的话,是否考虑过Unique Indexes。

供参考。

Love MongoDB! Have fun!

我以前也遇到过这个问题,可以使用aggregate方式去呈現
db.users.aggregate([{$group: {_id: '$name'} }]);

这是我在另一篇讨论帖看到的答案,你可以也看看:
http://forum.foxera.com/mongo...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题