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



我在Mongoose中有一个Schema,其中包含许多字段,但所有字段都是可选的,因为我希望能够部分更新它。在我的业务流程的最后,我想提交一个文档,从而检查是否设置了模式中定义的所有字段。

除了手动检查文档中的每个字段之外,我该怎么做呢?

我找到了一个方法:

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, path, undefined) === undefined)
return notFilledFields.length === 0
}
如果有人知道更好的方法,请告诉我!

相关内容

最新更新