Remarque : les entités personnalisées sont une fonctionnalité du forfait Plus. Choisissez l'un des nombreux forfaits Plus (y compris le forfait Développement Plus à 5 $/mois) pour y accéder.
Avantages
Les entités personnalisées sont les versions optimisées des entités globales et usager. Elles intègrent toutes les fonctionnalités de nos systèmes d'entités standard (propriété, liste de contrôle d'accès, durée de vie et gestion des versions simultanées), ainsi que la prise en charge des index personnalisés (beaucoup plus rapide !) et de la migration de déploiement (plus pratique !). Nous les recommandons particulièrement pour les jeux de données volumineux avec de multiples modes d'accès.
Les entités personnalisées sont similaires aux entités globales et aux entités utilisateur, avec des avantages certains en termes de performances, car elles permettent de créer des index personnalisés. Les index permettent une exécution efficace des requêtes. Sans eux, la base de données doit analyser chaque document d'une collection pour sélectionner ceux qui correspondent à la requête. Si un index approprié existe pour une requête, la base de données peut l'utiliser pour réduire le nombre de documents à inspecter.
Pour bénéficier de ces avantages, vous devez définir vos entités personnalisées à l'avance ; c'est là que nous attachons les métadonnées d'index, etc. En comparaison, les entités globales et les entités usager sont essentiellement "non typées".
Voici l'essentiel : il existe deux grandes classifications d'entités personnalisées : celles qui sont "détenues" (c'est-à-dire détenues par les usagers) et celles qui ne le sont pas.
Les entités personnalisées non détenues ressemblent beaucoup aux entités globales (en particulier ce que nous appelons entités système - qui sont la propriété de l'application et non d'un usager spécifique), elles incluent également la prise en charge de la migration des données d'application de déploiement - vous pouvez donc facilement transférer les données d'application mises à jour du développement vers la production.
Les entités personnalisées possédées ressemblent cependant beaucoup aux entités usager, vous obtenez tous les mêmes concepts que la confidentialité (elles sont privées pour les joueurs individuels - contrôlées par ACL), la gestion des versions de concurrence, etc.
Vous pouvez même afficher les entités appartenant à un joueur dans les données usager - ce qui est bien sûr très pratique (et ressemble beaucoup aux entités usager).
Cela dit, vous pouvez également consulter l'intégralité de la collection d'entités personnalisées détenues au niveau de la surveillance globale, ce qui peut être utile pour rechercher tous les joueurs ayant atteint le niveau 40 ou supérieur. Cette fonctionnalité est impossible avec les entités usager.
Globalement, les entités personnalisées non détenues sont bien meilleures que les entités globales, et les entités personnalisées détenues sont meilleures que les entités usager.
Portail de conception
Les pages de portail suivantes vous permettent de manipuler facilement les entités personnalisées :
Conception > Cloud Data > Entités personnalisées - vous permet de définir des entités personnalisées, leurs index personnalisés et même des modèles JSON pratiques pour créer de nouvelles entités.
Global > Data global > Entités personnalisées - Affichez et modifiez toutes les collections d'entités - avec des fonctionnalités complètes de recherche et d'importation/exportation.
Usager > Données > Entités personnalisées - Affichez/modifiez facilement les entités appartenant à un usager spécifique.
Créer une entité personnalisée
Étape 1 : créez un type d'entité personnalisé si vous n'en avez pas ou si vous souhaitez en créer un nouveau : cliquez sur le bouton [Créer...] sur la page de collections Conception > Cloud Data > Entités personnalisées et une fenêtre contextuelle apparaîtra.
Nom du type d'entité (obligatoire, comme nom de la collection)
Identifiant (facultatif, utilisé pour afficher la valeur du champ désigné lors de la consultation de la liste des entités depuis le portail. L'emplacement par défaut du paramètre d'identifiant correspond aux champs de niveau racine de vos données d'entité ; ne préfixez pas
data.
pour le nom du champ)Possédé (par défaut, non possédé, si défini, les instances de ce type d'entité doivent appartenir aux usagers, de manière similaire aux entités usager.)
Migrer (par défaut sur false, si défini, les instances de ce type d'entité seront migrées pendant une opération de déploiement/exportation, similaire aux entités globales. Cette option est uniquement pour les entités sans propriétaire.)
Données de modèle (facultatif, utilisé pour configurer un modèle de saisie de données pour cette collection, ce qui vous permet de créer plus facilement des instances d'entité dans le portail, sans avoir à créer à partir de zéro)
Ajouter des index
Ce n'est pas obligatoire, mais c'est l'avantage le plus important des entités personnalisées. Il est fortement recommandé de créer des index pour les grands ensembles de données qui récupèrent fréquemment des données à motifs fixes afin d'optimiser les performances. Une fois un type d'entité créé, cliquez sur la ligne correspondante pour ouvrir le panneau Détails du type d'entité , puis cliquez sur le bouton [Voir...] pour ouvrir une fenêtre contextuelle. Accédez à l'onglet Index personnalisés , puis cliquez sur [Modifier] -> [Créer...] pour ajouter un index à cette collection.
Ajoutez le nom du champ (clés indexées) et la direction de chaque clé (par exemple, 1 ou -1) dans la zone de texte "Clés" , puis ajoutez des options (propriétés d'index, telles que "sparse", "partial", "TTL" et "insensible à la casse") à l'index que vous ajoutez dans la zone de texte "Options" (voir "Propriétés d'index MongoDB" pour plus de détails). Les types d'index couramment utilisés dans brainCloud incluent les index à champ unique et les index composés (les index composés peuvent prendre en charge les requêtes correspondant à plusieurs champs).
L'option d'arrière-plan est définie sur true par défaut car c'est le seul moyen sûr de créer un index lorsque le système est en ligne.
L'option sparse est définie sur true par défaut pour les champs indexés qui peuvent être manquants dans certains documents, elle ignorera tous les documents qui manquent des champs indexés.