MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Tylko odpytywanie poddokumentu i zwracanie pasującego poddokumentu

Zapytanie $in in find służy do zwracania dokumentów, a nie dokumentów podrzędnych. W Twoim przypadku platforma agregacji została udostępniona przez mongoDB. Pomoże to filtrować dokumenty podrzędne.

Dla 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 sposób

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. 10 pytań, które należy zadać (i odpowiedzieć) podczas hostowania MongoDB na AWS

  2. Określ wiele kryteriów dla elementów tablicy

  3. Łączenie aplikacji Heroku z usługą Atlas MongoDB Cloud

  4. MongoDB ORM dla Pythona?

  5. Jak ustawić useMongoClient (Mongoose 4.11.0)?