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