mongoDB数据去重

mongoDB数据怎么去重?比如下面这个collection:

{"id":"1","name":"apple"}
{"id":"2","name":"pear"}
{"id":"3","name":"apple"}
{"id":"4","name":"peach"}
{"id":"5","name":"pear"}

问题:
就是把重复的删除,结果像这样:

{"id":"1","name":"apple"}
{"id":"2","name":"pear"}
{"id":"4","name":"peach"}
阅读 3.9k
1 个回答

一般来说都是得到去重后的结果,而不是从数据库中删除。达到这个目的的话:

db.coll.aggregate([
    {$sort: {id: 1}},
    {$group: {_id: "$name", doc: {$first: "$$ROOT"}}},
    {$replaceRoot: {newRoot: "$doc"}}
]);

如果确实要删除,那么不在这个结果中的记录都可以删除了。

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