【发布时间】:2018-09-19 01:12:26
【问题描述】:
我使用下面的代码来显示不同集合的两个字段的结果:InfoMovie 和 Rate,将 MID 作为它们之间的公共字段。我想要一个使用 Mongodb 将集合“InfoMovie”中的“Actors”和集合“Rate”中的“remark”显示到一个 resltset 中的结果集。但是当我执行下面的代码时,它只显示“备注”列表,但不显示备注的演员名称。 [注:合集中所有演员均未备注。很少有人备注。我们只需要显示被评论的演员的名字。] 如果有人能解决这个问题,我将不胜感激。先感谢您! :)
db.InfoMovie.aggregate([
{
$lookup:
{
from:"Rate",
localField:"MID",
foreignField:"MID",
as:"ActorsRating"
}
},
{
$project:{"Remark":1,"Actors":1}
}
])
以下是示例文档: 集合 infoMovie 的示例文档:
{
"MID":"1",
"MovieName":"Iron man",
"Actors":"RDJ",
"RDate":"2008",
"Country":"USA",
},
{
"MovieID":"2",
"MovieName":"Dark Knight",
"Actors":"Christian Bail",
"RDate":"2007",
"Country":"USA",
}
我使用的 mongod 版本是 3.4.7。谢谢!
采集率示例文档:
{
"MID":1,
"ReviewedBy":"John",
"Rate":4,
"Date":"10/04/2013",
"remark":"The best Movie ever!",
},
{
"MID":2,
"ReviewedBy":"William",
"Rate":8,
"Date":"19/06/2014",
}
【问题讨论】:
-
项目阶段应该是这样的
$project:{"Remark":"$ActorsRating","Actors":1} -
但它也给出了未注释电影的结果。我们怎么能不显示那些没有被标记的?还是谢谢。
-
好的,你能把这两个集合中的示例文档发布并提到你的 mongodb 版本吗
-
先生您好!我已经添加了文件的代码。你能通过它吗!
-
我们可以借助集合“rate”中的属性“remark”来识别。集合“速率”由集合“InfoMovie”中的少数电影名称组成,并且备注列包含已备注和未备注的电影的 cmets。是否可以将 InfoMovie 中的演员姓名和 Rate 中的评论显示为结果集?感谢您的回复。
标签: mongodb mongodb-query aggregation-framework non-relational-database