如何将 mongo objectId 字段设置为 null 或为空甚至删除该字段?

Din*_*esh 2 javascript mongoose mongodb node.js

我的模态:

{
  "name":{type:String,required:true},
  "category":{type:mongoose.Schema.Types.ObjectId,ref:"Category"}
}
Run Code Online (Sandbox Code Playgroud)

我有一个使用此模式创建的文档,该文档如下所示:

{
  "_id":ObjectId("5dsfkjh2r74dsjdhf3r4f"),
  "name":"demo 1",
  "category":ObjectId("5ae9dlkj32nds6n37cj23")
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试更改类别字段,例如:

  • document.category = ''
  • document.category = null
  • document.category = undefined

我收到以下错误:

转换为ObjectId 失败...

我需要取消该"category"字段的设置nullempty甚至删除它。怎么做?

Sra*_*van 5

尝试一下unsetting文档

document.update({_id: "5dsfkjh2r74dsjdhf3r4f"}, {$unset: {category: 1 }});
Run Code Online (Sandbox Code Playgroud)

或者

document.update({_id: ObjectId("5dsfkjh2r74dsjdhf3r4f")}, {$unset: {category: 1 }});
Run Code Online (Sandbox Code Playgroud)