2 votes

Comment joindre deux collections en utilisant le cadre Phalcon ?

J'ai deux collections que je voudrais réunir en utilisant le cadre Phalcon PHP.

Je sais comment faire dans MySQL, mais je me demande si c'est possible en utilisant MongoDB, une base de données non relationnelle.

En supposant que mes collections sont :

Robots

  • _id
  • nom
  • âge

Pièces pour robots

  • _id
  • robot_id
  • nom
  • quantité

3voto

Armon Bigham Points 336

Hé Shailen et bienvenue sur StackOverflow :)

Bien que MongoDB ne soit pas une base de données relationnelle, il permet de joindre des collections en utilisant le cadre d'agrégation qui fait partie intégrante de MongoDB depuis la version 3.2.

Vous devriez être en mesure d'y parvenir avec quelque chose comme :

$results = RobotCollection::aggregate([
    [
        '$lookup' => [
            'from' => 'robot_parts',
            'localField' => '_id',
            'foreignField' => 'robot_id',
            'as' => 'parts'
        ]
    ]
]);

Dans cet exemple, le document du robot se verra ajouter un nouveau champ "parts" (ou le nom que vous lui donnerez dans le champ "as" du $lookup). Les pièces seront comparées lorsque robot_parts.robot_id = robots._id.

Vous pouvez en savoir plus sur l'étape du pipeline $lookup ici : https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/#pipe._S_lookup

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X