MongoDB 基于相同 ID 查找和修改文档的麻烦

问题描述

我最近一直在试验 nosql 数据库,主要是 mongodb,我遇到了一个奇怪的阻塞。为了保持简短,我开始实现用户身份验证/配置文件创建。用户和个人资料具有 1-1 关系。创建用户时,配置文件也是如此,但在开始时除了用户 ID 之外没有其他值

    user = new User({
        username,email,password
    })
    user.password = await bcrypt.hash(password,salt)

    const newUser = await user.save()

    const newProfile = await new Profile({user: newUser.id})

    await newProfile.save()

所以这很好用,我什至添加了一些检查来比较 newUser.id 和 newProfile.user,这是匹配的,它们是相同的

现在,当我尝试在这里更新此代码中的配置文件时出现问题,出于某种原因,我认为 mongodb 不认为 id 值是相同的,我已经解决了一段时间并且不能弄清楚我做错了什么。所以这段代码将 NULL 返回到我的个人资料更新端点,我不知道为什么(我使用的是猫鼬)

try {
    const profile = await Profile.findOneAndUpdate(
        {user: req.user.id},{$set: profileData},{new: true})

        return res.json(profile)

} catch (err) {
    
    console.log(err.message)
    res.status(500).send("Server error")
}

我在想如果这行不通,我可以在制作文档之前生成一个 id 并将其作为自定义字段传递给集合

没有错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)