MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Заявка за поддокумент и връщане само на съответстващ поддокумент

$in в заявката за търсене е проектирана да връща документи, а не поддокументи. Във вашия случай mongoDB е предоставил рамката за агрегиране. Това ще ви помогне да филтрирате поддокументи.

За 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 начин

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb:кога да се обадя на secureIndex?

  2. Мангуста, сортирайте заявката по попълнено поле

  3. Възможно ли е да се използва MongoDB като вградена база данни?

  4. Как да получите броя на срещанията на ключова дума в низ с помощта на mongoDb

  5. не може да преобразува от 'MongoDB.Driver.IMongoCollection<>' в 'System.Collections.Generic.IEnumerable<>'