无法从猫鼬文档访问某些属性

时间:2020-09-26 11:10:41

标签: mongodb mongoose

我正在使用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

是什么原因导致这种奇怪的行为?我可以访问某些属性,但不能访问其他属性,确实没有任何意义。

1 个答案:

答案 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)});