sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongoid - gräns för distinkt fråga

distinct i MongoDB är ett kommando och kommandon returnerar inte markörer. Endast markörer stöder limit() medan kommandoresultat inte gör det, precis som sort() stöds inte här, och jag tror att sortering är tillräckligt viktigt för att köras först, annars vet du aldrig vilka "första två" distinkta objekt du får

Det finns en väg runt detta, men genom att använda aggregeringsramverket. I vanlig MongoDB-frågaspeak (som du använder på MongoDB-skalet), skulle du använda:

db.places.aggregate( [
    { $match: { 'tags' : { $in: [ 'food' ] } } },
    { $group: { '_id': '$name' } },
    { $sort: { 'name': 1 } },
    { $limit: 2 },
] );

I Mongoid misstänker jag att du kan ändra den första raden till:

Place.collection.aggregate( [



  1. Prenumerera på Meteor.Users Collection

  2. Hur löser jag denna designbegränsning i mongo db w.r.t till prestanda?

  3. Meteordatabasanslutning

  4. Maven kör inte med Spigot