Aracılığıyla paylaş


distinct

komutu distinct , belirli bir alanın benzersiz değerlerini tek bir koleksiyonda bulmak için kullanılır. Bu komut, tüm belgeleri almadan bir alan için ayrı değerler kümesini tanımlamanız gerektiğinde veya benzersiz değerlere göre filtreleme veya gruplandırma gibi işlemler gerçekleştirmeniz gerektiğinde kullanışlıdır.

Sözdizimi

Komutun distinct temel söz dizimi aşağıdaki gibidir:

db.collection.distinct(field, query, options)
  • field: Döndürülen ayrı değerleri alan alan.
  • query: İsteğe bağlı. Ayrı değerlerin alındığı belgeleri belirten sorgu.
  • options: İsteğe bağlı. Komutun diğer seçenekleri.

Örnekler

Aşağıda, sağlanan örnek JSON yapısını kullanan örnekler verilmiştir.

Örnek 1: Satışlarda ayrı kategoriler bulma

Dizideki salesByCategory ayrıyı categoryName bulmak için:

db.stores.distinct("sales.salesByCategory.categoryName")

Örnek çıkış verisi

[mongos] StoreData> db.stores.distinct("sales.salesByCategory.categoryName")
[
  {
    _id: 'Discount Derby',
    discounts: [
      { categoryName: 'Bath Sheets', discountPercentage: 25 },
      { categoryName: 'Tablecloths', discountPercentage: 25 },
      { categoryName: 'Drapes', discountPercentage: 25 }
    ]
  }
]
[mongos] StoreData> db.stores.distinct("sales.salesByCategory.categoryName")
[
  'Music Theory Books',
  'Superfoods',
  'Harmonicas',
  'Garden Tools',
  ... 883 more items
]  

Örnek 2: Yükseltme olaylarında farklı olay adlarını bulma

Dizideki promotionEvents ayrıyı eventName bulmak için:

db.stores.distinct("promotionEvents.eventName")

Örnek çıkış verisi

[mongos] StoreData> db.stores.distinct("promotionEvents.eventName")
[
{
    _id: 'Super Saver Celebration',
    discounts: [
      { categoryName: 'Face Towels', discountPercentage: 25 },
      { categoryName: 'Printer Ribbons', discountPercentage: 25 },
      { categoryName: 'Chromebooks', discountPercentage: 25 }
    ]
    }
]

Örnek 3: Belirli bir olay için ayrı indirim yüzdeleri bulma

"Summer Sale" olayının discounts dizisindeki ayrıyı discountPercentage bulmak için:

db.stores.distinct("promotionEvents.discounts.discountPercentage", { "promotionEvents.eventName": "Incredible Discount Days" })

Örnek çıkış verisi

[mongos] StoreData> db.stores.distinct("promotionEvents.discounts.discountPercentage", { "promotionEvents.eventName": "Incredible Discount Days" })
[
   6, 17, 22, 25,  9, 15, 14,
   7, 12, 19, 24,  5, 20, 10,
  23, 16, 18, 21, 13, 11,  8
]