8 Şubat 2021 Pazartesi

MongoDB aggregate ve project - Projection Yapmak

Giriş
Açıklaması şöyle
Naturally, we’re going to want to reduce the documents into smaller objects — returning just the fields we want, or aliasing their names. In the SQL paradigm, this sounds like a SELECT , for Mongo it’s $project .

The structure you pass to $project is a field mapping:
<field>: <1 or true>
_id: <0 or false>
<field>: <expression>
<field>: <0 or false>
Örnek
Şöyle yaparız. Burada sadece id ve bookName alanları gösterilir.
db.books.find({}, {"bookName": 1}).pretty()
Eğer id alanını da saklamak istersek şöyle yaparız. Burada sadece bookName alanı gösterilir.
db.books.find({}, {"_id": 0, "bookName": 1}).pretty()
Örnek
Şöyle yaparız. Burada her subject'in bir book dizisi var. Book dizisi dolaşılıyor ve project ediliyor. Daha sonra projection sort ediliyor.
db.Subject.aggregate([ 
  {
    $project:{
  "subject.subCode":1,
      "subject.book.bookTitle":1,
      "subject.book.publisher":1
  },
  {
    $unwind:"$subject.book"
  },
  {
    $sort:{
      "subject.subCode":1,
      "subject.book.publisher":-1
    }  
  }
]).pretty()

Hiç yorum yok:

Yorum Gönder