Mongoose.js无法从我的文档中获取数组

时间:2013-08-27 10:17:54

标签: json node.js mongodb mongoose

在我的猫鼬模型中,我有一个像这样的用户模式:

var userSchema = mongoose.Schema({
_id : String,
username: String,
name : String,
timestamp : { type : Date, default: Date.now },
admin : Boolean,
pages : [String]
});
var User = mongoose.model('User', userSchema);

我试图从这个文档中获取这样的页面数组:

function isUserPage(userId, pageId, callback) {
models.User.find({_id: userId}, function(err, user) {
    console.log('user pages: ' + JSON.stringify(user[0].pages));
...
});

问题是我的console.log正在输出[[object object]]。我可以看到数组中的数据是smog(基于web的mongodb管理员查看器),但我似乎无法用javascript访问它。

提前谢谢你。

1 个答案:

答案 0 :(得分:1)

控制台将始终使用对象作为[对象对象]打印数组。 pages实际上是一个对象数组,因此您可以像这样指定pages数组的索引

console.log(user[0].pages[0]);

或者如果pages数组包含多个元素,则需要常规for循环

for (var i = 0; i<user[0].pages.length; i++) {
  // use i as an array index
  console.log(user[0].pages[i]);
}