【发布时间】:2020-05-30 10:15:14
【问题描述】:
我有多个记录存储在 mongo 集合中,并且有多个条件。 我想根据不同的条件批量或批量读取记录,我也想知道提取的记录是哪个条件的结果。
我正在使用spring boot和mongotemplate来执行这个操作。
我尝试了以下方法
1.将条件与OR结合(但我不会知道记录是哪个条件的结果。
2.Bulkoperations,但是我没有找到bulk read。
【问题讨论】:
标签: mongodb spring-boot
我有多个记录存储在 mongo 集合中,并且有多个条件。 我想根据不同的条件批量或批量读取记录,我也想知道提取的记录是哪个条件的结果。
我正在使用spring boot和mongotemplate来执行这个操作。
我尝试了以下方法
1.将条件与OR结合(但我不会知道记录是哪个条件的结果。
2.Bulkoperations,但是我没有找到bulk read。
【问题讨论】:
标签: mongodb spring-boot
我们可以使用 $switch 或 $cond 将条件与 mongo 中的投影结合起来。按照 mongo 查询相同的条件
db.action.aggregate(
{
$project:
{
"name":"$name",
"condNAme" :
{
$switch:
{
branches: [
{ case: {$eq: ["$clientId", 1000]}, then:"cond1"},
{ case: {$eq: ["$clientId", 1001]}, then:"cond2"},
],
default:0
}
}
}
}
)
如果满足第一个条件则追加cond1,如果满足第二个条件则追加cond2。这样我们就可以确定哪个条件被执行为真
【讨论】: