node.js - 将 mongodb 用户 ID 插入另一个用户模式中

标签 node.js mongodb mongoose

以下架构遇到问题

const FriendRequestSchema = new Schema({
    requester: {
        _id: {
            type: Schema.Types.ObjectId
        }
    },
    profilePicture: String,
    pending: {
        type: Boolean,
        default: true
    }
})

我创建新好友请求的方式

const friendRequest = new FriendRequest({
    requester: {
        _id: req.user._id
    },
    profilePicture: req.user.profilePicture
})

结果对象

    {
        "pending": true,
        "_id": {
            "$oid": "5ab4fdb07525fd6880d1a6b9"
        },
        "profilePicture": "/assets/profile_icons/glasses.png"
    }

现在的问题是:

  1. 我缺少请求者字段

  2. id字段总是不同的并且不保存请求者id

我该如何解决这个问题?

最佳答案

尝试像这样更改架构:

 requester: {
            type: Schema.Types.ObjectId,
            required: true,
            ref: 'User', // depends on how you called user schema
        },

用法:

const friendRequest = new FriendRequest({
    requester: req.user._id,
    profilePicture: req.user.profilePicture
})

关于node.js - 将 mongodb 用户 ID 插入另一个用户模式中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49450630/

相关文章:

javascript - 将平面结构转换为对象

node.js - 如何在不重新启动进程的情况下更新进程中的 ENV 变量(NodeJS)?

ruby-on-rails - Juggernaut 2 的服务器端计时器

node.js - 在 ubuntu 14.04 中安装 libimobiledevice 时出错

javascript - 将 Mongoose 对象转换为特定的 json 模式(对象)

node.js - 与僧侣的数据库连接错误处理

node.js - Mongoose 中 $setOnInsert 的等效解决方法是什么

Mongodb 查询执行花费太多时间

mongodb - 使用 Mongoose 从 MongoDB 文档中删除一个键

mongoose - 异步等待中的错误处理