#spring-boot #mongodb-query #spring-data-mongodb #mongo-shell #mongotemplate
#spring-boot #mongodb-query #spring-data-mongodb #mongo-shell #mongotemplate
Вопрос:
Я хочу написать следующий запрос, используя шаблон mongo.
db.collection.aggregate([
{
$project: {
classes: {
$map: {
input: "$classes",
as: "class",
in: {
classId: "$$class.classId",
students: {
$filter: {
input: "$students",
cond: { $in: ["$$this._id", "$$class.studentIds"] }
}
}
}
}
}
}
}
])
Я много пробовал, но это не работает.
TypedAggregation<OrderDocument> aggregate = newAggregation(StudentDocument.class,
match(Criteria.where("_id").is(id)),
project("classes")
.and(VariableOperators.Map
.itemsOf("classes")
.as("class")
.andApply(doc->
new Document()
.append("classId", "$$class.classId")
.append("students", ArrayOperators.Filter
.filter("students")
.as("student")
.by(ComparisonOperators.Eq.valueOf("$$student._id").equalToValue("$$class.studentIds"))))));
Это не дает требуемого ответа, который поступает из команды оболочки mongo.
Комментарии:
1. Вы нашли answear?
2. Нет @big_OS . Пока я не нашел ответа