【发布时间】:2021-01-17 05:12:09
【问题描述】:
我在 mongo 中有一个由匹配和项目操作组成的聚合管道,结果我有一个对象数组。
结果示例:
[{"pdb_id":"1avy"},{"pdb_id":"1avy"},{"pdb_id":"1lwu"}]
我想删除重复的对象,所以结果应该是:
[{"pdb_id":"1avy"},{"pdb_id":"1lwu"}]
一个可行的解决方案示例是:
const uniqueArray = result.filter((object,index) => index === result.findIndex(obj => JSON.stringify(obj) === JSON.stringify(object)));
但是当我涉及更多数据时,这会非常慢。您知道更快的解决方案吗?
请考虑结果中的对象也可能具有多个属性。例如:
[{"pdb_id":"1avy", "pdb_chain":"A"},{"pdb_id":"1avy", "pdb_chain":"A"},{"pdb_id":"1lwu", "pdb_chain":"A"}]
需要过滤到:
[{"pdb_id":"1avy", "pdb_chain":"A"},{"pdb_id":"1lwu", "pdb_chain":"A"}]
【问题讨论】:
标签: arrays mongodb mongodb-query aggregation