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

Mongodb afvikle indlejrede dokumenter

Jeg ved, at det, du prøver at gøre, er muligt med MongoDB. aggregate() kommandoen kan tage så mange argumenter som du har brug for.

I mongo-skallen, en kommando som denne

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

vil afvikle items underdokument, derefter images underdokument.

Baseret på koden i dit spørgsmål, vil dette måske virke

$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. Laravel 5 udfører aggregering med mongodb on where-klausul

  2. Forbindelse til MongoDB ReplicaSet på Kubernetes

  3. Mongo-aggregation og MongoError:undtagelse:BufBuilder forsøgte at vokse() til 134217728 bytes, forbi grænsen på 64MB

  4. Hvordan samles og flettes resultatet til en samling?