使用Sails.js
version 0.10.x
,假设我有一个 model Dog
,填充如下(yaml
为方便起见以格式写出,但在我的情况下它实际上在mongo
数据库中。)
dogs:
- breed: "wolf"
name: "Fido"
- breed: "wolf"
name: "Roger"
- breed: "dingo"
name: "Nipper"
- breed: "dingo"
name: "Ernie"
- breed: "corgi"
name: "Bernadi"
- breed: "corgi"
name: "Queenie"
- breed: "poodle"
name: "Christopher"
- breed: "poodle"
name: "Tony"
etc
所以现在我想创建一个可用品种的列表。
Dog.find().exec(err, dogs) {
breeds = [];
dogs.each(function(dog)) {
if (breeds.indexOf(dog.breed) === -1) breeds.push(dog.breed);
}
...
}
有没有更简单的方法来减少对数据库的访问?就像是
Dog.find().distinct('breed').exec(function(err, breeds){
...
});
我发现了这个封闭的 Waterline 问题,这似乎表明我可以使用一种.distinct
方法,但我试过了,可惜没有骰子。
Object [object Object] has no method 'distinct'
我该如何以数据库有效的方式来解决这个问题?