如何使用spring-data-mongodb重写此投影查询? 我遇到的主要问题是$ and运算符。
查询:
{
$project: {
"_id": 1,
"totalAmount": {
$cond: [{
$and: [{
$eq: ["$type", "entity"]
}, {
$eq: ["$status", "ACTIVE"]
}]
}, "$amount", 0]
},
}
}
我写了
ConditionalOperators.Cond operator = ConditionalOperators
.when(new Criteria()
.andOperator(Criteria.where("type").is("entity") , Criteria.where("status").is("ACTIVE")))
.thenValueOf("amount").otherwise(0.0);
ProjectionOperation projectionOperationNavLogs = project().and("_id").as("_id").and(operator).as("totalAmount");
但这不是相同的查询
答案 0 :(得分:1)
$ cond表达式具有以下两种语法之一:
{ $cond: { if: <boolean-expression>, then: <true-case>, else: <false-case-> } }
或
{ $cond: [ <boolean-expression>, <true-case>, <false-case> ] }
生成的查询使用更冗长的语法这一事实不是问题。