MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

mongoose/mongodb персонализирано сортиране

Може да искате да използвате db.eval ако сте решени да направите това от страната на базата данни.

Отговор, извлечен от друг въпрос:

Не мисля, че това е възможно директно; документацията за сортиране със сигурност не споменава начин за предоставяне на персонализирана функция за сравнение.

Вероятно е най-добре да направите сортирането в клиента, но ако наистина сте решени да го направите на сървъра, може да сте в състояние да използватеdb.eval() да организирате да стартирате сортирането на сървъра (ако вашият клиент го поддържа).

Сортиране от страна на сървъра:

db.eval(function() { 
  return db.scratch.find().toArray().sort(function(doc1, doc2) { 
    return doc1.a - doc2.a 
  }) 
});

Сравнено с еквивалентното сортиране от страна на клиента:

db.scratch.find().toArray().sort(function(doc1, doc2) { 
  return doc1.a - doc2.b 
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Натиснете към два отделни масива в едно извикване за актуализиране в mongodb

  2. Не може да стартира MongoDB като услуга

  3. Съхраняване на йерархия на директории в хранилище на данни ключ-стойност

  4. Дължина на стойността на низовото поле в mongoDB

  5. mongodb текстово търсене с помощта на няколко езика