我有以下代码,基于Mongoose Docs的快速入门。
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
var kittySchema = mongoose.Schema({
name: String
});
var kitten = mongoose.model('kitten', kittySchema);
kitten.find(function(err, kittens) {
if(err)
return console.error(err);
console.log(kittens[0].name);
});
});
我想要做的是记录数据库中每只小猫的名字。
上面的示例使用kittens[0].name
返回数组中第一只小猫的名称,但是当我尝试执行以下操作时:
for(var i in kittens){
console.log(kittens[i].name);
}
它会为数据库中的每个项目返回undefined
。
我尝试将i
变量转换为数字,因为它是一个字符串,但没有运气。
如何检索.find()
附带的每个项目的属性名称?
答案 0 :(得分:0)
为什么不尝试这个:
for(var i=0; i<kittens.length; i++){
console.log(kittens[i].name);
}
因为,find
返回一个数组,即kittens
,kittens.length
将提供length
数组的kittens
。
希望它有所帮助。