Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 与insertOne函数一起使用时,MongoDB架构不插入属性_Javascript_Node.js_Json_Mongodb_Express - Fatal编程技术网

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

Javascript 与insertOne函数一起使用时,MongoDB架构不插入属性,javascript,node.js,json,mongodb,express,Javascript,Node.js,Json,Mongodb,Express,最初的问题解决了,谢谢 现在,每当我插入文档时,其结果如下: { _id: "5e3b64b6655fc51454548421", todos: [ ], title: "title" } 它应该是这样的,因为在模式中,“title”属性位于“todos”属性之上 { _id: "5e3b64b6655fc51454548421", title: "title", todos: [ ] } JavaScript //project schema const schema = mong

最初的问题解决了,谢谢

现在,每当我插入文档时,其结果如下:

{

_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
    })
})

您正在以下行中重命名密钥:

const proj = new Project({title: req.body.projTitle});
您的架构需要
projTitle
,请尝试将其更改为:

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

Mongoose定义文档的结构。每当您试图保存架构中未定义的其他字段时,mongoose将忽略该字段。

您正在重命名下面一行中的密钥:

const proj = new Project({title: req.body.projTitle});
您的架构需要
projTitle
,请尝试将其更改为:

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

Mongoose定义文档的结构。每当您试图保存架构中未定义的其他字段时,mongoose将忽略该字段。

您在创建新项目对象时输入了错误的键。根据您的模式将其更改为正确的键,您就可以开始了

//project schema
const schema = mongoose.Schema({
    projTitle: 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({projTitle: req.body.projTitle});** // changes are here
    collection.insertOne(proj, function(err, results) {
        if (err){
            console.log(err);
            res.send('');
            return
        }
        res.send(results.ops[0]) //retruns the new document
    })
})

创建新项目对象时输入了错误的键。根据您的模式将其更改为正确的键,您就可以开始了

//project schema
const schema = mongoose.Schema({
    projTitle: 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({projTitle: req.body.projTitle});** // changes are here
    collection.insertOne(proj, function(err, results) {
        if (err){
            console.log(err);
            res.send('');
            return
        }
        res.send(results.ops[0]) //retruns the new document
    })
})

请尝试查看下面的代码

const collection = db.collection('projects')
const proj = new Project({projTitle: req.body.projTitle}); //make changes here

请尝试查看下面的代码

const collection = db.collection('projects')
const proj = new Project({projTitle: req.body.projTitle}); //make changes here

谢谢你的回答,这就是问题所在。还有一件事,现在每当我在DB中插入一个时,todos数组就会放在JSON对象的title属性之上。@VladTanasie在MongoDB中依赖键的顺序不是一个好主意:谢谢你的回答,这就是问题所在。还有一件事,现在每当我在DB中插入一个时,todos数组就会放在JSON对象的title属性之上。@VladTanasie在MongoDB中依赖键的顺序不是一个好主意: