MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Mongodb srotola i documenti nidificati

So che quello che stai cercando di fare è possibile con MongoDB. Il aggregate() comando può richiedere tutti gli argomenti di cui hai bisogno.

Nella mongo shell, un comando come questo

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

rilascerà gli items documento secondario, quindi le images sottodocumento.

In base al codice nella tua domanda, forse funzionerà

$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);