在评论集合中插入时,验证失败错误。
我有3个收藏(规则,页面和评论)。
规则收集: - {validator:{$或:[{r_name:{$ type:" string"}}]}}
页面收藏: - {validator:{$或:[{url:{$ type:" string"}}]}}
评论集: - {validator:{$或:[{rule_id:{$ type:' objectId' },{page_id:{$ type:' objectId' }}}}
在评论集合中插入: -
process
.myDb
.comment
.insertOne({
rule_id: "5a035eb6eea8b4ba363e6f8d",
page_id: "5a035effeea8b4ba363e6f8e"
})
.then(resp => {
console.log('Success');
})
.catch(() => {
// HERE i am getting "Document failed validation"
console.log('Error');
});
疑惑: -
答案 0 :(得分:1)
您传入的字符串中您的验证器需要ObjectIds。但是,您可以使用ObjectId(stringValue)
从给定字符串计算相应的ObjectId。
在您的代码中:
process
.myDb
.comment
.insertOne({
rule_id: ObjectId("5a035eb6eea8b4ba363e6f8d"),
page_id: ObjectId("5a035effeea8b4ba363e6f8e")
})
.then(resp => {
console.log('Success');
})
.catch(() => {
// HERE i am getting "Document failed validation"
console.log('Error');
});
您可能需要在ObjectId()
前加上模块名称,具体取决于您导入mongoDB的方式等,但您明白了。
请参阅here以供参考。