这就是模型的样子

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const popBookSchema = new Schema({
      title: String,
      url: String
});

module.exports = mongoose.model('PopBook', popBookSchema);


这就是控制器的样子

exports.addBook = async(req, res) => {
  const book = await Book.findOne({title: req.query.book});
  const popBook = new PopBook(book);
  console.log(book);
  console.log(popBook.url);
  await popBook.save()
  .then(() => {
    console.log('successfully saved popular book');
  })
  .catch((err)=>{
    console.log(err);
  });
  res.send(popBook);
}


现在,conosle.log打印出book和popbook.url,并且我还在控制台中收到“成功保存”消息,但是数据库内部没有任何内容。该集合在数据库中不存在。现在,我使用另一种模型对其进行了测试,并且一切正常。我只是在这里找不到问题。

最佳答案

当您在mongo cli中创建集合时,要与猫鼬连接时,必须在Schema中添加{collection:“ collectionName”},即

new Schema({ title: String, url: String },{collection:"collectionName"});


尝试这个

关于node.js - Mongoose 成功保存了一个文档,但是没有反射(reflect)在数据库中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51907455/

10-10 00:22