用mongodb查询语句列出所有与娜塔莉·波特曼合作过不止一部电影的演员。还指出了多少部电影,以及和她一起工作的年。
时间: 2024-05-10 13:13:44 浏览: 130
MongoDB的InfoSphereGuardium数据安全和保护(一)
可以使用以下 MongoDB 查询语句:
```
db.movies.aggregate([
{
$match: {
cast: "Natalie Portman"
}
},
{
$unwind: "$cast"
},
{
$group: {
_id: "$cast",
count: {
$sum: 1
}
}
},
{
$match: {
count: {
$gt: 1
},
_id: {
$ne: "Natalie Portman"
}
}
},
{
$project: {
_id: 0,
actor: "$_id",
count: 1
}
}
])
```
这个查询语句首先用 `$match` 条件查询出所有有娜塔莉·波特曼参演的电影。然后用 `$unwind` 操作把演员列表展开成单个文档。之后用 `$group` 操作按演员名分组,统计他们和娜塔莉·波特曼一起出演了多少部电影。再用 `$match` 操作筛选出和娜塔莉·波特曼共同出演了不止一部电影的演员。最后用 `$project` 操作把查询结果整理为 `{actor: 演员名, count: 合作电影数}` 的格式。
您可以根据实际情况修改电影数据库的集合名和演员字段名。如果您使用的是 Mongoose ORM,那么查询语句可能会有些不同,但基本思路是相同的。
阅读全文