MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongodb löst verschachtelte Dokumente

Ich weiß, dass das, was Sie versuchen, mit MongoDB möglich ist. Das aggregate() Der Befehl kann beliebig viele Argumente annehmen.

In der Mongo-Shell ein Befehl wie dieser

db.collection.aggregate(
  { $project: {
    _id: 1,
    items: 1
  } },
  { $unwind: '$items' },
  { $unwind: '$items.images' }
);

wickelt die items ab Unterdokument, dann die images Unterdokument.

Basierend auf dem Code in Ihrer Frage funktioniert dies vielleicht

$project = array(
  '$project' => array(
    '_id' => 1,
    'items' => 1,
  )
);

$unwind_items = array(
  '$unwind' => '$items'
);

$unwind_images = array(
  '$unwind' => '$items.images'
);


$query = $mongo->store->aggregate($project,$unwind_items,$unwind_images);