如何在不同的对象字段中查找重复值?
Posted
技术标签:
【中文标题】如何在不同的对象字段中查找重复值?【英文标题】:How to find duplicate values in different object fields? 【发布时间】:2019-05-01 10:57:44 【问题描述】:如何使用mongoose
搜索以查找不同字段中的重复值?
这是示例文档:
"followers":
"_id": "5bf6d610d3a3f31a6c75a9f4"
,
"_id": "5bf6d610d3a3f31a6c75a8c3"
,
"following":
"_id": "5bf6d610d3a3f31a6c75a9f4"
,
"_id": "5bf6d610d3a3f31a6c75b7a2"
,
我想在followers
和following
字段下找到相同的_id
值。
预期输出:
"_id": "5bf6d610d3a3f31a6c75a9f4"
我应该使用什么查询?
【问题讨论】:
followers
和 following
将是数组。对吗?
@HardikShah 是的!
【参考方案1】:
试试这个:
db.collection.aggregate([
$unwind : "$followers",
$unwind : "$following",
$project :
_id: 0,
matchId: $cond: [ $eq: [ "$followers._id", "$following._id" ] ,
"$following._id", null ]
,
$match : "matchId" : $ne : null
])
输出:
/* 1 */
"matchId" : "5bf6d610d3a3f31a6c75a9f4"
【讨论】:
谢谢,但是我如何在单个文档中查询(我想在单个文档中找到重复的 id,但在两个不同的字段中) 是的,您可以使用我提供的相同 sn-p。只需将$match
添加到聚合顶层的特定 Id 即可。您可以发布整个示例数据结构吗?所以,我可以根据您的要求进行修改。以上是关于如何在不同的对象字段中查找重复值?的主要内容,如果未能解决你的问题,请参考以下文章