首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将mongo objectId字段设置为空或空,甚至删除该字段?

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

Stack Overflow用户
提问于 2018-03-16 09:59:40
回答 3查看 9K关注 0票数 2

My Modal :

代码语言:javascript
复制
{
  "name":{type:String,required:true},
  "category":{type:mongoose.Schema.Types.ObjectId,ref:"Category"}
}

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

代码语言:javascript
复制
{
  "_id":ObjectId("5dsfkjh2r74dsjdhf3r4f"),
  "name":"demo 1",
  "category":ObjectId("5ae9dlkj32nds6n37cj23")
}

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

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

我得到了以下错误:

演员toObjectId失败..。

我需要将"category"字段取消为nullempty,甚至删除它。怎么做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-16 10:23:14

试着unsetting文档

代码语言:javascript
复制
document.update({_id: "5dsfkjh2r74dsjdhf3r4f"}, {$unset: {category: 1 }});

代码语言:javascript
复制
document.update({_id: ObjectId("5dsfkjh2r74dsjdhf3r4f")}, {$unset: {category: 1 }});
票数 5
EN

Stack Overflow用户

发布于 2018-03-16 10:03:58

ObjectId应该是一个24长的字符串,我想您的id不是。这就是为什么mongo不能将其转换为有效的ObjectId

一种解决方案是为类别字段生成24个字符有效的ObjectId。其他方法是将category设置为简单的String而不是ObjectId

票数 0
EN

Stack Overflow用户

发布于 2018-03-16 10:27:57

使用行document.category =新的MongoDB\BSON\ObjectID('');

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49317838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档