【问题标题】:Mongo bulk fetch record based on multiple conditionsMongodb基于多个条件批量获取记录
【发布时间】:2020-05-30 10:15:14
【问题描述】:

我有多个记录存储在 mongo 集合中,并且有多个条件。 我想根据不同的条件批量或批量读取记录,我也想知道提取的记录是哪个条件的结果。

我正在使用spring boot和mongotemplate来执行这个操作。

我尝试了以下方法

1.将条件与OR结合(但我不会知道记录是哪个条件的结果。

2.Bulkoperations,但是我没有找到bulk read。

【问题讨论】:

    标签: mongodb spring-boot


    【解决方案1】:

    我们可以使用 $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。这样我们就可以确定哪个条件被执行为真

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-02
      • 2019-06-04
      • 1970-01-01
      • 1970-01-01
      • 2020-03-18
      • 1970-01-01
      • 1970-01-01
      • 2013-02-15
      相关资源
      最近更新 更多