我有一个文档Keelung
,该文档的数组movie
有6个对象。
我想找到文档db.getCollection('Keelung').find({})
,但在enName
中没有重复的值。
例如,如果有两个enName
值为Truth or Dare
,我的查询命令将返回5个对象。
我不知道如何实现,请尝试db.getCollection('Keelung').find({ enName : true, dropDups : true })
显然不正确。
在mongodb中有什么方法可以实现?还是我应该在前端对其进行过滤?
任何帮助将不胜感激。预先感谢。
根据@Sergio建议,我在Google上找到$addToSe
db.getCollection('Keelung').aggregate([
{ $unwind: '$data' },
{ $group: { _id: '$_id', movie: { $addToSet: '$enName' } } }
]);
什么都没发生,我不知道如何在此命令中使用查找查询...
答案 0 :(得分:1)
您需要$group
聚合
db.getCollection('Keelung').aggregate([
{ "$unwind": '$movie' },
{ "$group": {
"_id": "$movie.enName",
"data": {
"$push": {
"field1": "$field1",
"field2": "$field2",
...
}
}
}}
]);