我正在使用Mongoose对数据库进行查询,以检索集合中的所有文档。当前集合中只有一个文档。它返回了文档,看起来还不错,但是我无法访问某些属性。
代码段:
User.find()
.then((response)=>{
console.log(response);
console.log();
console.log(response[0]._id);
console.log(response[0].name);
console.log(response[0].email);
console.log(response[0].zipCode);
console.log(response[0].dateTime);
console.log(response[0].ipAddr);
console.log(response[0].pageVisited);
}).catch((err)=>{console.log(err)});
结果:
[
{
_id: 5f6d4dc312c76000170c5c43,
name: 'Bob',
email: 'bob@mail.com',
zipCode: '12345',
pageVisited: 'p1m2549',
dateTime: 2020-09-25T01:54:11.152Z,
ipAddr: '111.111.111.111',
__v: 0
}
]
5f6d4dc312c76000170c5c43
Bob
bob@mail.com
undefined
undefined
undefined
undefined
是什么原因导致这种奇怪的行为?我可以访问某些属性,但不能访问其他属性,确实没有任何意义。
答案 0 :(得分:1)
这可能是因为这些元素未在架构中定义
如下所述定义架构
var Schema = mongoose.Schema;
var UserSchema = new Schema({
name: String,
email: String,
zipCode: String,
pageVisited: String,
dateTime: Date,
ipAddr: String,
__v: Number
});
var User = mongoose.model('users', UserSchema );
User.find()
.then((response)=>{
console.log(response);
console.log();
console.log(response[0]._id);
console.log(response[0].name);
console.log(response[0].email);
console.log(response[0].zipCode);
console.log(response[0].dateTime);
console.log(response[0].ipAddr);
console.log(response[0].pageVisited);
console.log(response[0].__v);
}).catch((err)=>{console.log(err)});