我在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时,一个特定的子键
如何获取account.port和account.server值
答案 0 :(得分:0)
您已指定var User = mongoose.model(&#39; User&#39;);您不再需要在日志中执行此操作(user.lastLogin),(user.account),(user.account.port)只是忽略所有用户,应该可以正常工作。
(lastLogin)
(account)
(account.port)