mongodb - MongoDB - 有没有办法加入两个集合并按值过滤到数组字段中?
问题描述
我正在开发一个 Web 应用程序项目,该项目需要我查询 MongoDB 以检索一些数据。我真的是非关系数据库的初学者。基本上我有这两个具有以下模式的集合:
演员姓名:字符串 | 性别:字符串 ecc...
电影_id | 年份:数字 | 标题:字符串 | 演员:数组
特别是,该数组的结构如下: [0:{0:'name', 1: 'surname'}, 1: {...} ecc..]
我需要的是一个返回给定演员姓名的姓名、性别和电影列表的查询,所以我尝试了 $lookup 函数,但问题是我不知道如何访问它以匹配名称。
db.actors.aggregate([
{
$lookup:
{
from: "movies",
let: { name: "$_id"},
pipeline: [
{
$match:
{
$expr:
{
{ $eq: [ "$actors", "$$name" ] },
}
}
}
],
as: "movies"
}
}
])
当然,它不起作用,因为actors是一个嵌套数组。有什么解决办法吗?
解决方案
推荐阅读
- java - jdbcTemplate setQueryTimeout 值类型
- google-sheets - 如何关闭 Google 表格中的版本历史记录
- html - 悬停效果未覆盖分配类的所有 div
- kotlin - Kotlin|Tornadofx:如何在另一个 fxml 屏幕中单击鼠标时打开新的 fxml 屏幕
- r - rmarkdown(pdf和docx输出)中字母和单位之间的空间更少
- concourse - 从资源访问 Concourse REST API
- go - 创建包含指针的 Go 结构的可重复字节数组
- prometheus - 如何在 Google Cloud 中重新创建 Grafana kNative 仪表板
- java - 如何将参数从 GET 方法重定向到 POST 方法
- python - 我如何能够使用 Selenium Python 从下面的示例中获取值?