我正在使用“激活的路线角度”来获取演员和他的电影,我有一个演员列表,每个演员都有一个“激活的路线”链接到他的电影的细节。
我正在使用我的服务
getActor(_id:String): Observable<Actorpelicula>{
const url = `${this.URL_ACT}/${_id}`;
return this.http.get<Actorpelicula>(url)
}
在组件中
getActor():void{
const _id = this.rutas.snapshot.paramMap.get('_id');
this.peliculaService.getActor(_id)
.subscribe(actor => this.actor = actor);
}
在我的控制器上,我使用的查询有效,但是并不能为我带来查询中需要的所有细节
peliculaCtrl.getActor = async(req, res) =>{
const actor = await Actores.findOne({_id: req.params.id})
res.json(actor);
}
我返回的文件结构如下:
{
"_id": "5dc0365e0b2c0c479cb3fba3",
"name": "Keanu Reeves",
"description": "es un actor y músico canadiense-estadounidense, nacido en el Líbano. Dedicado a la actuación, tiene entre su repertorio las comedias de la franquicia de Bill y Ted (1989–1991); los thrillers de acción Point Break (1991), Speed (1994) y la franquicia John Wick (2014–2019); el thriller psicológico The Devil's Advocate (1997); el thriller sobrenatural Constantine (2005); y la serie de ciencia ficción y acción The Matrix (1999-2003). También ha participado en películas dramáticas como Dangerous Liaisons (1988), My Own Private Idaho (1991) y Little Buddha (1993), así como en la película de terror y romance Bram Stoker's Dracula (1992).",
"height": "1.86",
"birth": "1964-09-02T05:00:00.000Z",
"years": 55,
"image": "https://res.cloudinary.com/tq/image/upload/v1572888170/cineencasa/actores/bOlYWhVuOiU6azC4Bw6zlXZ5QTC.jpg",
"__v": 0
}
此新查询包含我需要的必要详细信息
peliculaCtrl.peliculasActor = async(req,res) =>{
const ObjectId = mongoose.Types.ObjectId;
const peliculaActor = await Actores.aggregate([
{
$match: {
_id: ObjectId(req.params.id)
}
},
{
$lookup:
{
from: "peliculas",
localField: "name",
foreignField: "cast",
as: "peliculas"
}
},
{ $project: { name: 1 ,description: 1, height:1, birth:1, years:1, image:1} }
])
res.json(peliculaActor);
}
如果我向路线发出请求,它将返回我
[
{
"_id": "5dc0365e0b2c0c479cb3fba3",
"name": "Keanu Reeves",
"description": "es un actor y músico canadiense-estadounidense, nacido en el Líbano. Dedicado a la actuación, tiene entre su repertorio las comedias de la franquicia de Bill y Ted (1989–1991); los thrillers de acción Point Break (1991), Speed (1994) y la franquicia John Wick (2014–2019); el thriller psicológico The Devil's Advocate (1997); el thriller sobrenatural Constantine (2005); y la serie de ciencia ficción y acción The Matrix (1999-2003). También ha participado en películas dramáticas como Dangerous Liaisons (1988), My Own Private Idaho (1991) y Little Buddha (1993), así como en la película de terror y romance Bram Stoker's Dracula (1992).",
"height": "1.86",
"birth": "1964-09-02T05:00:00.000Z",
"years": 55,
"image": "https://res.cloudinary.com/tq/image/upload/v1572888170/cineencasa/actores/bOlYWhVuOiU6azC4Bw6zlXZ5QTC.jpg"
}
]
但是在DOM中,我得到了空字段,我认为这是由于文档返回查询的结构所致,我唯一能显示的是使用Actors.findOne({_ id: req.params.id})
可以返回{{ 1}},并与{...}
一起返回文档Actores.aggregate ([])
希望您能帮助我的朋友