mongodb怎么根据两个字段去重

常见问题

mongodb怎么根据两个字段去重

2023-09-14 13:31


在MongoDB中,可以使用`$group`操作符和`$addToSet`操作符来根据两个字段进行去重。假设我们有一个名为`collection`的集合,其中包含两个字段`field1`和`field...

                                            

MongoDB中,可以使用`$group`操作符和`$addToSet`操作符来根据两个字段进行去重。
假设我们有一个名为`collection`的集合,其中包含两个字段`field1`和`field2`。我们可以使用以下聚合管道操作来根据这两个字段进行去重:
```javascript
db.collection.aggregate([
{
$group: {
_id: { field1: "$field1", field2: "$field2" },
uniqueIds: { $addToSet: "$_id" }
}
},
{
$project: {
_id: 0,
field1: "$_id.field1",
field2: "$_id.field2"
}
}
])
```
这个聚合管道操作会首先根据`field1`和`field2`将文档分组,然后使用`$addToSet`操作符将每个分组中的唯一`_id`添加到`uniqueIds`数组中。
最后,使用`$project`操作符将`_id`字段移除,然后将`_id.field1`和`_id.field2`重新命名为`field1`和`field2`。
这样就可以得到根据两个字段去重后的结果。


標簽:
  • mongodb