【问题标题】:Model Imported. But still company.save() not a function模型导入。但仍然 company.save() 不是函数
【发布时间】:2022-01-16 12:34:33
【问题描述】:

我正在使用 .find 找到正确的公司,然后向它添加值.....console.log(company) 是否正常工作。

但是当试图保存它时......我得到 company.save() 不是一个函数。我是猫鼬和编程的新手。无法弄清楚我做错了什么。

const { Company } = require('../models/company');

 const company = await Company.find({
                userAdmin: `${data.object.metadata.userId}`
            });

            company[0].customerId = data.object.customer;
            company[0].postNumber = data.object.metadata.postNumber;
            company[0].accountStatus = data.object.metadata.accountStatus;

            try {
                await company.save();
            } catch (ex) {
                console.log(ex.message);
                for (field in ex.errors) console.log(ex.errors[field].message);
            }

【问题讨论】:

  • 如果您也可以分享错误消息,那就太好了。但是,正如@nathan-wiles 回答的那样,您需要使用 findOne 而不是 find。此外,如果公司确实存在,首先检查会更安全。

标签: node.js mongodb mongoose mern


【解决方案1】:

猫鼬模型上的.find() 返回一个文档数组,而不仅仅是一个。

数组上没有.find() 函数;只有里面的文件本身会。

如果您只查找单个文档,请改用 .findOne()

【讨论】:

    【解决方案2】:

    因为我公司有多个文件。而且您只需修改一个并保存一个,因此您应该尝试 company[0].save()

    【讨论】:

    • 感谢所有帮助我解决问题的人。 company[0].save() 解决了我的问题。
    • 希望您可以将此标记为解决方案^^
    猜你喜欢
    • 1970-01-01
    • 2016-12-14
    • 2023-01-10
    • 2019-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    相关资源
    最近更新 更多