例如,在第一本书中,重复字符'anne'。因此,我需要过滤这些记录。 示例:
{
title : 'abc',
characters :
[
{ name : 'Anne',id :2},
{ name : 'Suzan', id :1},
{ name : 'Anne', id:2}
]
}
{
title : 'xyz',
characters :
[
{ name : 'Anne', id :2},
{ name : 'Suzan', id : 1}
]
}
答案 0 :(得分:0)
我假设每个文档都有_id属性,您可以尝试如下查询:
db.books.aggregate([
{$project: { _id: 1, characters: 1 } },
{$unwind: "$characters" },
{$group: {_id: { _id: "$_id", name: "$characters.name" }, count: { $sum: 1 }}},
{$match: {"count" : { $gt: 1 }}}
])
结果应如下所示:
{ "_id" : { "_id" : ObjectId("someid"), "name" : "Anne" }, "count" : 2 }
让我知道它是否有效。