当我使用字符串文字但是当我引用Object的属性时,mongoose findById工作

时间:2015-06-07 15:47:24

标签: node.js mongodb mongoose

我在Mongoose有一个非常奇怪的问题。

此行正确找到Round

models.Round.findById("555ec731385b4d604356d8e5", function(err, roundref){
            console.log(roundref);
            ....

这一行不是

models.Round.findById(result.round, function(err, roundref){
            console.log(roundref);

我已经记录了result,它显然是一个包含属性的对象:

{round: "555ec731385b4d604356d8e5", selection: 1, time: 20}

为什么findById在没有文字的情况下不会工作?

1 个答案:

答案 0 :(得分:2)

如果result是JSON字符串,则调用.round将返回undefined

首先尝试将JSON转换为javascript对象:

result = JSON.parse(result);
models.Round.findById(result.round, function(err, roundref){
        console.log(roundref);