无法使用nodejs打印mongodb文档的子属性

时间:2016-10-24 05:57:06

标签: json node.js mongodb children

我在mongodb中有一个用户文档列表,其中包含以下字段:

{
    "_id" : ObjectId("57fb60caf380e20df0d59f4d"),
    "signupFp" : "a47d436a33edb44dfd2c45d6eb5574bd",
    "signupIp" : "127.0.0.1",
    "password" : "d38c2a8589965d869c79ce77e4dc871e",
    "email" : "someemail@gmail.com",
    "createTime" : ISODate("2016-10-10T09:35:06.386Z"),
    "isAdmin" : false,
    "isActive" : true,
    "account" : [ 
        {
            "port" : 5001,
            "server" : "harish server"
        }, 
        {
            "port" : 7001,
            "server" : "harish server"
        }
    ],
    "__v" : 0,
    "sendEmailTime" : ISODate("2016-10-10T09:35:06.405Z"),
    "activeKey" : "61ce67b47ee15547878404d9b5bebab7",
    "lastLogin" : ISODate("2016-10-12T07:51:53.059Z"),
    "expireTime" : ISODate("2016-10-25T00:00:00.000Z")
} 

我使用nodejs使用以下代码获取所有用户的文档:

var User = mongoose.model('User');
User.find({}).exec(function(err, data){
    if(err){
        return;
    }
data.forEach(function(user){


       if(user.expireTime < new Date()){
           console.log(user.lastLogin); //prints the last login date
           console.log(user.account); //outputs []
           console.log(user.account.port); //outputs undefined

       }
  }
}

并且我还需要子节点的值,即account.port和account.server,但是当我在console.log中给它空白数组[]或未定义到console.log时,一个特定的子键

child property empty mongodb

如何获取account.port和account.server值

1 个答案:

答案 0 :(得分:0)

您已指定var User = mongoose.model(&#39; User&#39;);您不再需要在日志中执行此操作(user.lastLogin),(user.account),(user.account.port)只是忽略所有用户,应该可以正常工作。

(lastLogin)
(account)
(account.port)