聚合框架-基于多字段表达式的MongoDB订单文档



我有一组电影,根据年龄的不同,其中包括有多少人看过这部电影。例如:

{
   name : "Return of Jedi",
   kids : 5,
   adults : 10,
   seniors : 3
}

这意味着《绝地归来》有5名儿童、10名成年人和3名老年人观看。

我需要根据他们的排名返回一个电影推荐。排名计算为与搜索匹配的电影的观众总数。例如,如果我有一个由孩子和成年人组成的家庭,绝地归来的等级将是13(#孩子+#成年人(。

MongoDB可以通过计算表达式进行排序吗?怎样如果没有,还有其他选择吗?

我曾想过使用聚合框架来解决这个问题,添加一个计算字段,然后按它排序。但这不会太耗费资源吗?

您需要使用$project,然后使用$add。

类似于:

db.movies.aggregate({ $project: 
{ 
      movieName: "$name", 
      totalAudience: { $add : ["$kids","$adults","$seniors"]}
},
{ $sort : { totalAudience: -1 }}
);

将为您提供按总观众描述排序的所有电影。

相关内容

  • 没有找到相关文章

最新更新