Bagikan melalui


distinct

Perintah distinct digunakan untuk menemukan nilai unik untuk bidang tertentu di satu koleksi. Perintah ini berguna ketika Anda perlu mengidentifikasi sekumpulan nilai yang berbeda untuk bidang tanpa mengambil semua dokumen atau saat Anda perlu melakukan operasi seperti pemfilteran atau pengelompokan berdasarkan nilai unik.

Syntax

Sintaks distinct dasar perintah adalah sebagai berikut:

db.collection.distinct(field, query, options)
  • field: Bidang yang menerima nilai berbeda yang dikembalikan.
  • query: Opsional. Kueri yang menentukan dokumen untuk mengambil nilai yang berbeda.
  • options: Opsional. Opsi lain untuk perintah .

Examples

Berikut adalah contoh menggunakan sampel struktur JSON yang disediakan.

Contoh 1: Temukan kategori berbeda dalam penjualan

Untuk menemukan perbedaan categoryName dalam salesByCategory array:

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

Contoh keluaran

[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
]  

Contoh 2: Temukan nama acara yang berbeda dalam acara promosi

Untuk menemukan perbedaan eventName dalam promotionEvents array:

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

Contoh keluaran

[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 }
    ]
    }
]

Contoh 3: Temukan persentase diskon yang berbeda untuk peristiwa tertentu

Untuk menemukan discountPercentage perbedaan dalam discounts array untuk acara "Summer Sale":

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

Contoh keluaran

[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
]