Mongoose Array İçinde Arama

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    biri
    biri's avatar
    Kayıt Tarihi: 03/Ocak/2009
    Erkek
    crystalmeth bunu yazdı

    bu şekilde çekebilirsin

    db.collection.aggregate(// Start with a $match pipeline which can take advantage of an index and limit documents processed
    {$match: {
      "notlar.onay": true
         }
        },
      {
    $unwind: "$notlar"
     },
      {
    $match: {
      "notlar.onay": true
      }
    })

     

    Sonuç:

     

    Bu sorguda isimi nerede eşleştiriyoruz hocam?


    ¯\(ツ)/¯ ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    crystalmeth
    crystalmeth's avatar
    Kayıt Tarihi: 25/Ağustos/2014
    Erkek
    biri bunu yazdı
    crystalmeth bunu yazdı

    bu şekilde çekebilirsin

    db.collection.aggregate(// Start with a $match pipeline which can take advantage of an index and limit documents processed
    {$match: {
      "notlar.onay": true
         }
        },
      {
    $unwind: "$notlar"
     },
      {
    $match: {
      "notlar.onay": true
      }
    })

     

    Sonuç:

     

    Bu sorguda isimi nerede eşleştiriyoruz hocam?

    match altına yapıştır gitsin

     

    Örnek:

     

    db:

    [
      {
        isim: "ahmet",
        soyisim: "mehmet",
        notlar: [
          {
            onay: false,
            yer: "istanbul"
          },
          {
            onay: true,
            yer: "bursa"
          },
          {
            onay: false,
            yer: "ankara"
          },
          
        ]
      },
      {
        isim: "yavuzss",
        soyisim: "soyisimss",
        notlar: [
          {
            onay: false,
            yer: "adana"
          },
          {
            onay: true,
            yer: "erzincan"
          },
          {
            onay: false,
            yer: "erzurum"
          },
          
        ]
      }
    ]

     

    Query:

    db.collection.aggregate( // Start with a $match pipeline which can take advantage of an index and limit documents processed
        {
            $match: {
                "notlar.onay": true,
                "isim": "yavuzss"
            }
        }, {
            $unwind: "$notlar"
        }, {
            $match: {
                "notlar.onay": true
            }
        })

     

    Result:

     

    [
      {
        "_id": ObjectId("5a934e000102030405000001"),
        "isim": "yavuzss",
        "notlar": {
          "onay": true,
          "yer": "erzincan"
        },
        "soyisim": "soyisimss"
      }
    ]

     


    “Fortes Fortuna Adiuvat”
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    biri
    biri's avatar
    Kayıt Tarihi: 03/Ocak/2009
    Erkek

    Yok hocam, istediğim gibi sonuç vermiyor.

    Eğer içinde true değeri yoksa boş dönüyor.

    Sanki where isim ='ahmet' and aktif = true gibi oluyor.

    İstediğim veri yoksa da o isim soyisim dönecek. notlar boş dönecek.

    Yada notlarda 10 tane true varsa 10 tanesi de dönecek.


    ¯\(ツ)/¯ ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    biri
    biri's avatar
    Kayıt Tarihi: 03/Ocak/2009
    Erkek

    Sanırım diğer arkadaşların dediği gibi bu işi mongo tarafında değil, javascript tarafında çözeceğiz map ile.


    ¯\(ツ)/¯ ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    biri
    biri's avatar
    Kayıt Tarihi: 03/Ocak/2009
    Erkek
                let onayliNot = result.notlar.filter(function (a) {
                    return a.onay == true;
                });
     
    Bu şekilde js tarafında çözdüm.

    ¯\(ツ)/¯ ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    end
    end's avatar
    Kayıt Tarihi: 16/Ekim/2016
    Erkek
    biri bunu yazdı
                let onayliNot = result.notlar.filter(function (a) {
                    return a.onay == true;
                });
     
    Bu şekilde js tarafında çözdüm.

    https://dev.to/functional_js/write-a-custom-javascript-filter-function-that-is-60-faster-than-array-filter-4b66

    Belki biraz daha fazla kaynak tüketiyordur ama daha hızlı kendisi :)


    0x0480 takilin madem ﷽﷽﷽
Toplam Hit: 3096 Toplam Mesaj: 17
mongo