Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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
Node.js Mongoose:尝试将嵌套对象字段设置为原始值';空';_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js Mongoose:尝试将嵌套对象字段设置为原始值';空';

Node.js Mongoose:尝试将嵌套对象字段设置为原始值';空';,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有一个嵌套字段的模式,例如 // model.js module.exports = Mongoose.model('Model', new Mongoose.Schema( { Top: { Middle: { Bottom: Number } } }, { strict: 'throw' }) ) 所有这些字段都存在是非常罕见的,

我有一个嵌套字段的模式,例如

// model.js
module.exports = Mongoose.model('Model', new Mongoose.Schema(
    {
        Top: {
            Middle: {
                Bottom: Number
            }
        }
    },
    {
        strict: 'throw'
    })
)
所有这些字段都存在是非常罕见的,当一个字段不存在时,生成它的进程写入
null
。我希望将strict mode设置为
true
,但似乎不希望应该包含对象的字段包含
null

// app.js
const Model = require('./model');
router.post('/api' , async (req, res) => {
    const doc = new Model(req.body);
    const result = await doc.save();
    res.json(result);
})

// test
axios.post('/api', { Top: { Middle: null }})
=> ObjectExpectedError: Tried to set nested object field 'Middle' to primitive value 'null' and strict mode is set to throw.

有没有办法避免这种行为?不幸的是,让生成数据的过程生成
undefined
而不是
null

不是一个简单的选择。请共享您的插入/更新代码。您可以设置{}而不是null。添加一些代码来显示基本的express端点,希望这就是您想要的。您可以共享您的model.js代码吗?