sql >> Databáze >  >> NoSQL >> MongoDB

Mongodb rozbalte vnořené dokumenty

Vím, že to, o co se snažíte, je možné s MongoDB. aggregate() příkaz může mít tolik argumentů, kolik potřebujete.

V mongo shellu příkaz jako tento

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

rozbalí items vnořený dokument a poté images vnořený dokument.

Na základě kódu ve vaší otázce to možná bude fungovat

$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. Jak formátovat data pro MongoEngine PointField

  2. příkaz aktualizace mongoDB pomocí regulárního výrazu

  3. Zhroucení Mongodb dostal signál 15 (ukončeno)

  4. pymongo.errors.ConnectionFailure:nelze se připojit k localhost:27017:[Errno 111] Připojení odmítnuto