sql >> Database >  >> NoSQL >> MongoDB

MongoDB Java-stuurprogramma:onderscheiden met sort

MongoDB ondersteunt geen server-side sorteren met de distinct opdracht. Wat er in de console gebeurt, is dat de distinct('myKey') call retourneert een array en dan roep je de JavaScript sort . aan methode op die array die een gesorteerde versie van de array retourneert. De parameters die u doorgeeft aan sort worden genegeerd.

Om het equivalent in Java te doen, zou u het volgende doen:

List myKeys = myCollection.distinct("myKey");
java.util.Collections.sort(myKeys);

Om de unieke sleutels te krijgen met behulp van een server-side sortering, zou je aggregate kunnen gebruiken . Zo doe je dat in de shell:

db.mycollection.aggregate([
    { $group: {_id: '$myKey' }},
    { $sort: {_id: 1}}
])

Toen ik dit echter testte, presteerde de eenvoudige sorteerbenadering aan de clientzijde veel beter.



  1. Is MongoDB thread-safe?

  2. Mongodb-query gebaseerd op het aantal velden in een record

  3. Redis met Resque en Rails:ERR-opdracht niet toegestaan ​​bij gebruik van geheugen> 'maxmemory'

  4. Hoe kan ik regex in mongodb gebruiken in plaats van mongolab?