Пн go запись массовой выборки на основе нескольких условий - PullRequest
0 голосов
/ 30 мая 2020

У меня есть несколько записей, хранящихся в коллекциях mon go, и у меня несколько условий. Я хочу выполнить пакетное или массовое чтение записей в зависимости от различных условий, и я также хочу знать, что извлекаемые записи являются результатом того или иного условия.

Я использую весеннюю загрузку и mongotemplate для выполнения этой операции.

Я пробовал следующие подходы

1. Объединение условий с ИЛИ (Но я не буду знать, что запись является результатом какого условия.

2. Я не нашел массового чтения.

1 Ответ

0 голосов
/ 01 июня 2020

Мы можем комбинировать условия с помощью $ switch или $ cond с проекцией в mon go. После запроса is mon go для того же

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. Таким образом, мы можем определить, какое условие выполняется до истины

...