【发布时间】:2016-01-12 06:12:21
【问题描述】:
示例文档:
{"name":"John", "age":35, "level":"trainee",.....}
- join_month=3 为最高优先级的员工(此类别中的员工首先出现)
- 作为主管的员工是第二优先级(出现在 #1 中的所有员工之后)
- 非马来西亚员工的优先级最低(排在所有其他员工之后)
例子:
- John 和 Jane 于 3 月加入
- 亚当、约翰和鲍勃是主管
- 上面提到的所有员工以及 Lee 都不是马来西亚人
预期结果是:
[John, Jane], [Adam, Bob], [Lee]
上面的方括号是为了表明同一个方括号内的顺序无关紧要。所以 Jane 也可能出现在 John 之前(因为它们的条件相同)。但 John 和 Jane 都必须出现在 Adam 和 Bob 之前,因为 join_month=3 的优先级高于 level=supervisor。并且还要注意,即使 John 也满足 level=supervisor 标准,他也不会再次被包括在内,因为他已经满足 join_month=3。
这在 MongoDB 中可行吗?
【问题讨论】:
标签: sql mongodb mongodb-query aggregation-framework