微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Mongoose - 如何测试我收藏的特定文档是否设置了所有字段

如何解决Mongoose - 如何测试我收藏的特定文档是否设置了所有字段

我在 Mongoose 中有一个包含许多字段的架构,但所有字段都是可选的,因为我希望能够对其进行部分更新。在我的业务流程结束时,我想提交一个文档,从而检查是否设置了架构中定义的所有字段。

除了手动检查文档上的每个字段之外,我还能怎么做?

解决方法

我找到了一种方法:

const getPathInObject = (object,path,defaultValue) => path
    .split(".")
    .reduce((o,p) => (o ? o[p] : defaultValue),object)

const areAllFieldsSet = (document: any) => {
    const notFilledFields = Object
        .keys(MySchema.schema.paths)
        .filter((path) => getPathInObject(document,undefined) === undefined)

    return notFilledFields.length === 0
}

如果有人知道更好的方法,请告诉我!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。