Как я могу запросить различные значения в 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 возвращаются, если это вообще возможно.

Просто чтобы дать обновление для 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){ }); } 
  • Правильный способ возврата JSON с помощью узла или Express
  • НПМ за прокси-сервером NTLM
  • Получить IP-адрес клиента в socket.io
  • Узел MongoDB проверяет, действительно ли objectid
  • Прекратить работу node.js
  • node-mysql несколько операторов в одном запросе
  • Как использовать пакет, установленный локально в node_modules?
  • Как очистить страницы с динамическим контентом с помощью node.js?
  • Nodejs POST запрос multipart / form-data
  • Как разместить приложение Node.Js в режиме совместного доступа
  • Express: Как передать приложение-пример маршрутам из другого файла?
  • Interesting Posts

    Как удалить Internet Explorer из окон?

    Установите Google Chrome для игнорирования местоположения

    .NET Events – Что такое отправитель объекта и EventArgs?

    Поворотные и интервальные метки на оси ggplot2

    Похоже, что привязки данных не обновляются

    Как заставить Safari выполнять полную перезагрузку страницы, не используя мышь?

    IE не корректно отображает CSS, когда сайт находится в сети.

    Почему C ++ требует, чтобы пользовательский конструктор по умолчанию устанавливал по умолчанию объект const?

    Подвижные столбцы со значением с помощью java

    Android: вернитесь к предыдущей деятельности

    Волшебная мышь не прокручивается на новом Macbook Pro

    Используя \ == / 2 или dif / 2

    CSS Div растягивает 100% высоты страницы

    Как увеличить разрешение виртуального окна linux guest

    Добавление большего количества ОЗУ на разных скоростях? Будет ли это влиять на производительность настолько, чтобы сделать ее хуже, чем без ее добавления?

    Давайте будем гением компьютера.