我遇到了一个问题,我希望能够获得一个集合的所有独特城市,我的代码看起来像这样:
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
返回的内容。
5条答案
按热度按时间zpf6vheq1#
只是为了给予 Mongoose 3更新。x:
rlcwz9us2#
在我的程序中,这段代码是有效的。
通过node.js v0.4.7, Mongoose 1。3.3
u4vypkhs3#
我通读了源代码,node-mongodb-native驱动程序是该类的动力。所以在连接对象上。所以在你完成 Mongoose 之后。connect(mongodb://),你可以给予一下。
3lxsmp7m4#
dced5bon5#
https://www.cltechhome.com/2023/02/how-do-i-query-for-distinct-values-in.html