Freigeben über


distinct

Der distinct Befehl wird verwendet, um die eindeutigen Werte für ein angegebenes Feld in einer einzelnen Auflistung zu finden. Dieser Befehl ist nützlich, wenn Sie den Satz unterschiedlicher Werte für ein Feld identifizieren müssen, ohne alle Dokumente abzurufen oder Vorgänge wie Filtern oder Gruppieren basierend auf eindeutigen Werten auszuführen.

Syntax

Die grundlegende Syntax des distinct Befehls lautet wie folgt:

db.collection.distinct(field, query, options)
  • field: Das Feld, das die zurückgegebenen eindeutigen Werte empfängt.
  • query:Wahlfrei. Eine Abfrage, die die Dokumente angibt, aus denen die unterschiedlichen Werte abgerufen werden sollen.
  • options:Wahlfrei. Weitere Optionen für den Befehl.

Examples

Hier sind Beispiele zur Verwendung der bereitgestellten JSON-Beispielstruktur.

Beispiel 1: Suchen nach unterschiedlichen Kategorien in Verkäufen

So suchen Sie das Unterschiedliche categoryName im salesByCategory Array:

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

Beispielausgabe

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

Beispiel 2: Suchen nach eindeutigen Ereignisnamen in Heraufgestufungsereignissen

So suchen Sie das Unterschiedliche eventName im promotionEvents Array:

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

Beispielausgabe

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

Beispiel 3: Ermitteln unterschiedlicher Rabattprozentsätze für ein bestimmtes Ereignis

So finden Sie das Unterschiedliche discountPercentage im discounts Array für das "Summer Sale"-Ereignis:

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

Beispielausgabe

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