Mongoose无法使用findOne或find方法访问数据

时间:2014-09-14 13:48:35

标签: json node.js mongodb express mongoose

我试图访问amount。我可以看到数据:

架构:

var schema = mongoose.Schema({
    investors : {
        id        : String, 
        amount     : Number,
        user_id      : String,
        inv_profit : Number
    }

});

命令

invs2.findOne({}, function(err, data){

        console.log(data)
})

输出:

{ _id: 54159a1c291df572283fa4de,
  investors: 
   [ { inv_profit: 0,
       user_id: 'userID',
       amount: 1.2,
       id: '1410701852660' },
     { inv_profit: 0,
       user_id: 'userID',
       amount: 1.2,
       id: '1410701858752' } ] }

invs2.findOne({}, function(err, data){

        console.log(data.investors)
})

输出:

[ { id: '1410701852660',
    amount: 1.2,
    user_id: 'userID',
    inv_profit: 0 },
  { id: '1410701858752',
    amount: 1.2,
    user_id: 'userID',
    inv_profit: 0 } ]

但是当我尝试访问data.investors[0].amount时,我得到了undefined

即使data.investors.length正在返回undefined

invs2集合中只有一个条目。

1 个答案:

答案 0 :(得分:1)

investors应该被定义为模式中的数组,如果它是一个子文档数组:

var schema = mongoose.Schema({
    investors : [{
        id        : String, 
        amount     : Number,
        user_id      : String,
        inv_profit : Number
    }]
});