Funzioni di gestione delle raccolte collection-management-functions

Informazioni sulle funzioni di raccolta query

Il linguaggio delle espressioni introduce anche un set di funzioni per le raccolte di query. Queste funzioni sono descritte di seguito.

Nell’esempio seguente, utilizziamo il payload dell’evento contenente una raccolta:

                {
   "_experience":{
      "campaign":{
         "message":{
            "profile":{
               "pushNotificationTokens":[
                  {
                     "token":"token_1",
                     "application":{
                        "_id":"APP1",
                        "name":"MarltonMobileApp",
                        "version":"1.0"
                     }
                  },
                  {
                     "token":"token_2",
                     "application":{
                        "_id":"APP2",
                        "name":"MarketplaceApp",
                        "version":"1.0"
                     }
                  },
                  {
                     "token":"token_3",
                     "application":{
                        "_id":"APP3",
                        "name":"VendorApp",
                        "version":"2.0"
                     }
                  }
               ]
            }
         }
      }
   },
   "timestamp":"1536160728"
}

La funzione all(<condition>)

La funzione all abilita la definizione di un filtro per una determinata raccolta utilizzando un'espressione booleana.

<listExpression>.all(<condition>)

Ad esempio, tra tutti gli utenti dell’app, puoi ottenere quelli che utilizzano IOS 13 (espressione booleana "app utilizzata == IOS 13"). Il risultato di questa funzione è l’elenco filtrato contenente gli elementi che corrispondono all’espressione booleana (ad esempio: utente app 1, utente app 34, utente app 432).

In un'attività Condizione Data Source è possibile verificare se il risultato della funzione all è nullo o meno. È inoltre possibile combinare questa funzione all con altre funzioni quali count. Per ulteriori informazioni, vedere Attività condizione Data Source.

CAUTION
L’utilizzo di eventi di esperienza nelle espressioni/condizioni di percorso non è supportato. Se il caso d’uso richiede l’utilizzo di eventi esperienza, considera metodi alternativi. Ulteriori informazioni

Esempio 1

Vogliamo verificare se un utente ha installato una versione specifica di un’applicazione. Per questo otteniamo tutti i token di notifica push associati alle applicazioni mobili per le quali la versione è 1.0. Quindi eseguiamo una condizione con la funzione count per verificare che l'elenco di token restituito contenga almeno un elemento.

count(@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.all(currentEventField.application.version == "1.0").token}) > 0

Il risultato è vero.

Esempio 2

In questo caso, usiamo la funzione count per verificare se la raccolta contiene token di notifica push.

count(@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.all().token}) > 0

Il risultato è vero.

count(@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.token})

Il risultato dell'espressione è 3.

NOTE
  • Quando la condizione di filtro nella funzione all() è vuota, il filtro restituirà tutti gli elementi dell'elenco. **Tuttavia, per contare il numero di elementi di una raccolta, la funzione all non è obbligatoria.

  • currentEventField è disponibile solo quando si manipolano le raccolte eventi, currentDataPackField quando si manipolano le raccolte origini dati e currentActionField quando si manipolano le raccolte di risposte di azioni personalizzate.

    Durante l'elaborazione delle raccolte con all, first e last, viene eseguito un ciclo su ogni elemento della raccolta uno alla volta. currentEventField, currentDataPackField e currentActionField corrispondono all'elemento di cui viene eseguito il ciclo.

La prima(<condition>) e l'ultima(<condition>) funzioni

Le funzioni first e last abilitano inoltre la definizione di un filtro nella raccolta restituendo il primo/ultimo elemento dell'elenco che soddisfa il filtro.

<listExpression>.first(<condition>)

<listExpression>.last(<condition>)

Esempio 1

Questa espressione restituisce il primo token di notifica push associato alle applicazioni mobili la cui versione è 1.0.

@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.first(currentEventField.application.version == "1.0").token}

Risultato: token_1.

Esempio 2

Questa espressione restituisce l’ultimo token di notifica push associato alle applicazioni mobili la cui versione è 1.0.

@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.last(currentEventField.application.version == "1.0").token}

Risultato: token_2.

Funzione at(<index>)

La funzione at consente di fare riferimento a un elemento specifico di una raccolta in base a un indice.
L'indice 0 è il primo indice della raccolta.

<listExpression>.at(<index>)

Esempio

Questa espressione restituisce il secondo token di notifica push dell’elenco.

@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.at(1).token}`

Risultato: token_2.

recommendation-more-help
b22c9c5d-9208-48f4-b874-1cefb8df4d76