sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongodb varva ner kapslade dokument

Jag vet att det du försöker göra är möjligt med MongoDB. aggregate() kommandot kan ta så många argument som du behöver.

I mongoskalet, ett kommando som detta

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

kommer att varva ner items underdokument, sedan images underdokument.

Baserat på koden i din fråga kanske detta fungerar

$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. Mongoose, indexera platser array

  2. Hur fjärransluter jag till min MongoDB på min server med java?

  3. Redis lagringslista inuti hash

  4. MongoDB Aggregation Framework - Hur matchar man efter datumintervall, grupperar efter dagar och avkastningsmedelvärde för varje dag?