在我的猫鼬模型中,我有一个像这样的用户模式:
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访问它。
提前谢谢你。
答案 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]);
}