javascript - 与 insertOne 函数一起使用时,MongoDB 架构不插入属性

标签 javascript node.js json mongodb express

最初的问题已经解决,谢谢!

现在,每当我插入文档时,它都会像这样出现:

{

_id: "5e3b64b6655fc51454548421",
todos: [ ],
title: "title"

}

它应该看起来像这样,因为在架构中“title”属性位于“todos”属性之上。

{

_id: "5e3b64b6655fc51454548421",
title: "title",
todos: [ ]

}

JavaScript

//project schema
const schema = mongoose.Schema({
    title: String,
    todos: []
});

const Project = mongoose.model('Project', schema);

//add a project
app.post('/addProject', (req, res) => {
    const collection = db.collection('projects')
    const proj = new Project({title: req.body.title});
    collection.insertOne(proj, function(err, results) {
        if (err){
            console.log(err);
            res.send('');
            return
        }
        res.send(results.ops[0]) //retruns the new document
    })
})

最佳答案

您将在下面的行中重命名您的 key :

const proj = new Project({title: req.body.projTitle});

您的架构需要 projTitle,请尝试将其更改为:

const proj = new Project({projTitle: req.body.projTitle});

Mongoose schema定义文档的结构。每当您尝试保存架构中未定义的其他字段时, Mongoose 都会忽略它。

关于javascript - 与 insertOne 函数一起使用时,MongoDB 架构不插入属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60086300/

相关文章:

node.js - 加载后如何在 mongoose 子文档中使用 Schema 方法

json - Angular - 将文件上传为 base64

javascript - 在 React 中将子组件中函数中存储的值传递给父组件

javascript - 如何使用本地存储将我的输入框值存储到另一个输入框

node.js - 使用nodejs构建多级菜单

javascript - 在 mongodb 中,作为 key 而不是匿名用户的用户名和密码传递什么?

当值包含双引号时,Java jackson ObjectMapper 失败?

java - Java 中的有序 JSON 转换,读取 JSONObjects 的 JSONArray

javascript - $(window).height() 不起作用

javascript - Skrollr 淡入淡出文本不起作用,但所有其他 skrollr 元素都起作用