sql >> Database >  >> NoSQL >> MongoDB

Alleen subdocument opvragen en overeenkomend subdocument retourneren

$in in zoekquery is ontworpen om documenten te retourneren in plaats van subdocumenten. In uw geval heeft mongoDB het aggregatieraamwerk geleverd. Dit helpt u bij het filteren van subdocumenten.

Voor mongoDB <=3.0.x

db.collection.aggregate(
  { $project: { Brand: 1}},
  { $unwind: '$Brand'},
  { $match: { "Brand.name" : { $in : ["Reebok", "Adidas"]}}},
  { $group: { _id: '$_id', Brand: {$push : '$Brand' }}}
)

MongoDB 3.2 manier

db.collection.aggregate([
   {
      $project: {
         Brand: {
            $filter: {
               input: "$Brand",
               as: "Brand",
               cond: { "$$Brand.name": { $in : ["Reebok", "Adidas"]}}
            }
         }
      }
   }
])


  1. Hernoemen van belangrijke naamgevingsconventies?

  2. waarom DuplicateKeyError:E11000 dubbele sleutel fout index:test.test.$notification_1 dup sleutel:{:null}

  3. Tel gebeurtenissen en voeg letterlijke tekenreeksen in tijdens aggregatie

  4. Hoe waarden bijwerken met pymongo?