My Modal :
{
"name":{type:String,required:true},
"category":{type:mongoose.Schema.Types.ObjectId,ref:"Category"}
}我有一个使用此模式创建的文档,文档如下:
{
"_id":ObjectId("5dsfkjh2r74dsjdhf3r4f"),
"name":"demo 1",
"category":ObjectId("5ae9dlkj32nds6n37cj23")
}如果我试图更改类别字段,例如:
document.category = ''document.category = nulldocument.category = undefined我得到了以下错误:
演员toObjectId失败..。
我需要将"category"字段取消为null或empty,甚至删除它。怎么做?
发布于 2018-03-16 10:23:14
试着unsetting文档
document.update({_id: "5dsfkjh2r74dsjdhf3r4f"}, {$unset: {category: 1 }});或
document.update({_id: ObjectId("5dsfkjh2r74dsjdhf3r4f")}, {$unset: {category: 1 }});发布于 2018-03-16 10:03:58
ObjectId应该是一个24长的字符串,我想您的id不是。这就是为什么mongo不能将其转换为有效的ObjectId。
一种解决方案是为类别字段生成24个字符有效的ObjectId。其他方法是将category设置为简单的String而不是ObjectId。
发布于 2018-03-16 10:27:57
使用行document.category =新的MongoDB\BSON\ObjectID('');
https://stackoverflow.com/questions/49317838
复制相似问题