Mongodb:协会不起作用

时间:2018-07-24 18:09:58

标签: javascript mongodb

在我的应用中,我有2个收藏用户和书籍。每当由于某种原因无法添加图书时,我都试图添加用户ID。

这是我的书本模式。我要添加ownerId作为用户ID。

const mongoose = require('mongoose');

const { Schema } = mongoose;

const BookSchema = new Schema({
  name: {
    type: String,
    required: true,
  },
  author: {
    type: String,
    required: true,
  },
  price: {
    type: String,
    default: 'n/a',
  },
  ownerId: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'users',
    required: true,
  },
}, { timestamps: true });

const Book = mongoose.model('Book', BookSchema);

module.exports = Book;

用户数据库条目

{
    "_id": {
        "$oid": "5b5666dba3bf3359b245e0ad"
    },
    "role": 0,
    "email": "monty69@gmail.com",
    "password": "$2b$10$KjTHzKSQCznCGQxYVprl3.3B3HV/aq0wGDqzQw.01P9lEXUn91Afe",
    "name": "jatta",
    "lastname": "sandhu",
    "__v": 0
}

Mongo版本 MongoDB Shell版本v3.6.3

图书查询

addBook: async (req, res) => {
    try {
      const book = await new Book(req.body).save();
      return res.status(200).json(book);
    } catch (err) {
      return res.status(400).send(err);
    }
  }

但是由于某种原因,它没有在书籍条目中添加用户ID。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您需要将ownerId与登录的用户id

绑定
addBook: async (req, res) => {
    try {
      req.body.ownerId = req.user.id
      const book = await new Book(req.body).save();
      return res.status(200).json(book);
    } catch (err) {
      return res.status(400).send(err);
    }
  }