sql >> Database >  >> NoSQL >> MongoDB

Mongodb ontvouwt geneste documenten

Ik weet dat wat je probeert te doen mogelijk is met MongoDB. De aggregate() commando kan zoveel argumenten bevatten als je nodig hebt.

In de mongo-shell, een commando als dit

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

zal de items afwikkelen subdocument, dan de images subdocument.

Op basis van de code in uw vraag, werkt dit misschien

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



  1. Documenten importeren in MongoDB vanuit een array van JSON-documenten

  2. Gegevens uit MongoDB (gridfs) lezen via Matlab en Java-stuurprogramma

  3. MongoDB kopieert een veld naar een andere verzameling met een externe sleutel

  4. PyMongo gedraagt ​​zich slecht met drijvende-kommagetallen