2015-06-29 3 views
2

У меня есть простой вопрос по сортировке результатов из отдельной команды в mongodb.MongoDB отличная функция и сортировка по алфавиту

Я использую Монка в моем NodeJS приложение, чтобы получить категории из моей простой БД:

db.getCollection('citazioni').distinct('category') 

Но как я могу применить функцию сортировки, как я успешно делать, когда я нахожу документы:

collection.find({}, {sort: {'_id': -1}} ??

Спасибо!

+2

возможно дубликат [получить уникальные значения с отсортированного] (http://stackoverflow.com/questions/4759437/get-distinct-values-with-sorted-data) – Elyasin

ответ

3

Монах имеет поддержку основных node.js родной драйвер distinct() метода и его signature является

Collection.prototype.distinct = function (field, query, fn) { ... } 

Как вы можете видеть, что обязательство, что он реализует отличный метод нативного типа коллекции драйвера узла через .col аксессору на выбранном объекте коллекции:

this.col.distinct(field, query, promise.fulfill); 

Таким образом, вы можете реализовать его вместе с родной JavaScript sort() метод следующим образом:

// Perform a distinct query against the category field 
db.getCollection('citazioni').distinct('category', function(err, categories) { 
    console.log(categories.sort()); 
} 
1

Объединить его:

db.getCollection('citazioni').distinct('category').sort({'_id': -1}) 

В приложении Node с Мангуста:

collection.distinct('citazioni').sort({'_id': -1}).exec(function(e2, categories) { 
    ... etc ... 
} 
+0

Что Я получаю: TypeError: db.getCollection ("citazioni"). Distinct ("categor y "). sort ({_ id: -1}) не является функцией – daliz

+0

Можете ли вы поделиться полным кодом? –

+0

То, что я вставил, является единственным кодом, который я запускаю в своей оболочке MongoDB. В Node.js (Express) я вызываю: "collection.distinct ('category', function (e2, categories) {... и т. Д.}}, Но я до сих пор не знаю, как их сортировать. – daliz