2016-09-29 63 views
1
hisOwnProperty

我的用户模式是用户在MongoDB的架构中定义的属性没有显示在节点

var mongoose = require('mongoose'); 
    var userSchema = mongoose.Schema({ 
      firstName  : String, 
      lastName  : String, 
      ... 
    }) 

    module.exports = mongoose.model('user', userSchema,'user'); 

我查找查询DB

User.findById(userId,function(error,user){ 
    if(!error){ 
     console.log(user) //correctly print user schema as described above with _id 
     for (var key in user) { 
      if (user.hasOwnProperty(key)) { 
      console.log("key ", key); //not print firstName, lastName 
      } 
     } 
    } 
}) 

的中环路为例外不起作用,它会打印不属于模式的不同属性

回答

0

这是因为返回的usermongoosemodel。它有一些其他的属性在它的原型中构建它。

如果你想遍历用户属性,你需要这样做:

console.log(user) 
    var objUser = user.toObject(); 
    for (var key in objUser) { 
     if (objUser.hasOwnProperty(key)) { 
     console.log("key ", key); 
     } 
    } 

toObject()功能将会把你的猫鼬模型转换为纯JavaScript对象。但是,如果你这样做,你需要记住,猫鼬模型函数不会在纯对象上工作(因为它不再是猫鼬模型)。因此,如果您仍然需要使用它们,则需要保留对原始用户模型的引用。

相关问题