2016-10-26 4 views
0

私は以下のコードを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); 
}); 


}); 

私がしたいことは、DBの各子猫の名前を記録することです。私は次の操作を実行しようとすると、上記 例はkittens[0].nameとアレイ内の最初の子猫の名前を返しますが:

for(var i in kittens){ 
    console.log(kittens[i].name); 
} 

それはDB内の各アイテムのundefinedを返します。

i変数を数値に変換しようとしましたが、これは文字列として提供されるものの、運がないからです。

.find()に付属するすべての商品のプロパティ名を取得するにはどうすればよいですか?

+0

通常の 'for'ループを実行するだけです:for(var i = 0; i TomG

+1

console.log (子猫);出力が何であるかを確認してください。 名前を持たない子猫がいる可能性があります。 – dyouberg

答えて

0

は、なぜあなたはこれを試していけない:

for(var i=0; i<kittens.length; i++){ 
    console.log(kittens[i].name); 
} 

いるので、ここではすなわちkittens配列を返すfindkittens.lengthkittens配列のlengthを与えるだろう。

希望します。

+0

ありがとうございました。これはトリックでした。私は質問を掲示する前にこれを試したので、少し混乱していますが、まだ未定義です。私は何が変わったのか分かりません。あるいは、ちょうど間違った方法で書き込んでいたかもしれません。とにかくあなたの答えをありがとう! – medicengonzo

関連する問題