【问题标题】:Can not print child properties of mongodb document with nodejs无法使用nodejs打印mongodb文档的子属性
【发布时间】:2016-10-24 05:57:05
【问题描述】:

我在 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 它给我空白数组 [] 或 undefined to console.log 一个特定的子键

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

【问题讨论】:

  • 您能否更新您的问题以包含User 模型的架构定义?也许你有一个对另一个模型的嵌入式引用,比如Account

标签: json node.js mongodb children


【解决方案1】:

您已指定 var User = mongoose.model('User');您不再需要在日志中执行此操作 (user.lastLogin),(user.account),(user.account.port) 只需从所有日志中省略用户即可。

(lastLogin)
(account)
(account.port)

【讨论】:

  • 没用,我在每次打印时都省略了用户。它说 lastLogin,帐户未定义
  • 哦,我的错,用户列表只打印没有帐户节点的文档
猜你喜欢
  • 2021-02-04
  • 1970-01-01
  • 2014-09-27
  • 2016-02-28
  • 2021-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-08
相关资源
最近更新 更多