【发布时间】:2017-06-02 09:34:23
【问题描述】:
以下是我的 MongoDB 查询
{$project:{
firstName: "$firstName",
lastName:"$lastName",
email:"$email",
company :"$organization.name",
RoleName :"$organization.roles.roleName",
matchingRole: { $eq: [ "$organization.roles.orgRoleId","$userOrgMap.roleId" ] }
}
},
{ $match: {matchingRole:true},{ $sort : { firstName : 1} }])
以下是我的 SpringData mongo API
aggregation = newAggregation(
project("firstName", "lastName", "email")
.and("organization.name").as("company")
.and("organization.roles.roleName").as("roleName")
我想知道如何使用 Spring API 在项目聚合中使用 $eq。我试图将匹配项放在项目之外,如下所示。但是查询没有获取任何记录。所以我使用 $eq 在项目中进行比较,并将结果分配到一个新的项目属性中,并在项目管道之外检查它。
{ $match: {$organization.roles.orgRoleId","$userOrgMap.roleId"}
【问题讨论】:
-
我想出了以下等效项目(“_id”、“login”、“firstName”、“lastName”、“email”、“deactivateFlag”、“lastActivity”).and(" organization.name").as("company") .and("organization.roles.roleName").as("roleName") .and(when(where("organization.roles.orgRoleId").is("userOrgMap .roleId")).then(true).otherwise(false)).as("matchingRoleIds"), match(Criteria.where("matchingRoleIds").is(true)),
-
需要测试这个API
标签: aggregation-framework spring-data-mongodb