Как я могу запросить различные значения в Mongoose?

У меня есть проблема, когда я хочу получить все уникальные города для коллекции, и мой код выглядит примерно так:

var mongoose = require("mongoose"), Schema = mongoose.Schema; var PersonSchema = new Schema({ name: String, born_in_city: String }); var Person = mongoose.model('Person', PersonSchema); 

В родном MongoDb я мог просто сделать db.person.distinct("born_in_city") , но, похоже, для Mongoose не существует ничего эквивалентного. Является единственным вариантом для итерации по всем документам, чтобы сделать это, или есть лучшее решение?

В попытке использовать базовый node-mongodb-native как это было предложено автоответчиком, я попытался сделать это:

 mongoose.connection.db.collections(function(err, collections){ collections[0].distinct('born_in_city', function( err, results ){ console.log( err, results ); }); }); 

Однако results пустые и ошибок нет. Я также предпочел бы иметь возможность собирать только нужную коллекцию по имени, а не фильтровать, какие collections возвращаются, если это вообще возможно.

3 Solutions collect form web for “Как я могу запросить различные значения в Mongoose?”

Просто чтобы дать обновление для Mongoose 3.x:

 MyModel.find().distinct('_id', function(error, ids) { // ids is an array of all ObjectIds }); 

В моей программе этот код работает.

 Person.collection.distinct("born_in_city", function(error, results){ console.log(results); }); 

by node.js v0.4.7, мангуста 1.3.3

Я прочитал исходный код, и родной драйвер node-mongodb – это class полномочий. Итак, объект соединения. Итак, после того, как вы сделали mongoose.connect (mongodb: //), вы можете сделать это.

 if(mongoose.connections.length > 0) { var nativeconn = mongoose.connections[0].conn; nativeconn.person.distinct('born_in_city', function(error, results){ }); } 
  • NodeJS - Ошибка при установке с помощью NPM
  • Как найти, какие обещания необработаны в Node.js UnhandledPromiseRejectionWarning?
  • Имя поля batchSize игнорируется в полевой проекции
  • Как вернуть результаты Mongoose из метода поиска?
  • Как перенаправить в expressjs при передаче некоторого контекста?
  • Сценарий и аргументы оболочки Node.js
  • MongoDB / Mongoose запрос в определенную дату?
  • Как заставить Fish shell и NVM установить вместе с Homebrew для совместной работы?
  • Узел: войдите в файл вместо консоли
  • Как установить модуль node.js без использования npm?
  • Ошибка узла: SyntaxError: неожиданный импорт маркера
  • Давайте будем гением компьютера.