【问题标题】:JSON response did not include a field valueJSON 响应不包含字段值
【发布时间】:2021-03-17 23:50:25
【问题描述】:

我有一个获取下面这个架构的库的 GET 请求。

const usergameSchema = new mongoose.Schema({
itemId: {
    type: Number,
    required: true,
    default: 1
},
gameId: {
    type: String,
    required: true
},
added_at: {
    type: Date,
    default: Date.now
}
});

const librarySchema = new mongoose.Schema({
    userId: {
        type: String,
        required: true
    },
    userGames: usergameSchema,
    created_at: {
        type: Date,
        default: Date.now
    }
});

GET 请求 http://localhost:3000/libraries/ 通过用户 ID 查找数据。这是我的请求代码。

router.get('/:id', verify, async (req, res) => {
const library = await Libraries.find({ userId: req.params.id });
res.json(library);
});

请求仅在下面返回此响应。它不包括我还需要获取的 userGames 字段。

[
{
    "_id": "605219f936f65522c4d62f2e",
    "userId": "605219f936f65522c4d62f2d",
    "created_at": "2021-03-17T15:02:17.298Z",
    "__v": 0
}
]

如何获取 userGames 字段?

【问题讨论】:

标签: node.js mongodb express mongoose


【解决方案1】:

您可以通过填充 usergameSchema 来做到这一点。

您可以尝试在查询中填充 usergameSchema:

代码:

Libraries.find({ userId:req.params.id})
.populate('usergameSchema').exec(function(err,post){
    console.log(post);
    console.log(post.User);
})

【讨论】:

  • 谢谢!我才意识到问题是如何插入数据
猜你喜欢
  • 2013-11-26
  • 1970-01-01
  • 2015-02-12
  • 1970-01-01
  • 2016-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-01
相关资源
最近更新 更多