Vous pouvez utiliser les types de hachage mongo ou la collection selon vos besoins.
Hash: Stocke et récupère la valeur sous forme de tableau associatif.
Collection: Enregistre et récupère la valeur sous la forme d'un tableau indexé numérique.
Par exemple:
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
class Category
{
/**
* @MongoDB\Field(name="tags", type="collection")
*/
private $tags;
/**
* @MongoDB\Field(name="country_wise_total_count", type="hash")
*/
private $country_wise_total_count;
}
Les données sont stockées telles que:
"tags": [
"man",
"boy",
"male",
"sandal",
"cloth",
"army boots",
"boots",
"sport shoes",
"school",
"casual",
"office"
],
"country_wise_total_count": {
"NP": NumberInt(7),
"US" : NumberInt(10)
}
a fonctionné pour moi merci. Pas clair pourquoi ce n'est pas spécifié dans les docs http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/basic-mapping.html#doctrine-mapping-types –
Quel genre de cartographie devrions-nous utiliser pour mettre à jour le tableau pour ajouter une autre clé: élément de valeur? – Sekai
@Sekai: Je ne comprends pas la question. Le type 'collection' exécute la valeur PHP à l'aide de' array_values () 'avant de l'écrire dans le champ MongoDB (pour réindexer numériquement les clés). La stratégie 'hash' convertit la valeur PHP en un objet (c'est-à-dire stdClass en PHP) pour s'assurer qu'il est sauvegardé en tant qu'objet BSON. Aucune des paires clé/valeur dans les valeurs de collection/de hachage n'est mappée (c'est ce qui les distingue des documents incorporés (EmbedOne et EmbedMany) – jmikola