node.js - mongoose findById 在我使用字符串文字时有效,但在引用对象的属性时无效

标签 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);

我已经控制台记录了结果,它显然是一个包含属性 round 的对象:

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

为什么如果没有文字,findById 就无法工作?

最佳答案

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

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

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

关于node.js - mongoose findById 在我使用字符串文字时有效,但在引用对象的属性时无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30695485/

相关文章:

mongodb - 如何在 Ubuntu 上运行 mongo shell

javascript - Mongoose 正在保存文档,即使我检查文档是否已经存在

javascript - 带有子文档的复杂架构

node.js - React 连接到 API,无需生产环境中的端点

javascript - Next.js 与 pkg。语法要求启用以下解析器插件之一 : 'flow, typescript'

javascript - 谁来正确管理套接字上的 mongodb 数据(服务器端)

Mongodb 查询(聚合框架)耗时极慢

mongoose - 如何防止 Mongoose 在修改用户后重新散列用户密码?

javascript - Gulp Sass logError 和 gulp-notify 同时出现?

node.js - Async.js 并行回调未执行