【问题标题】:How do you delete multiple fields in a mongodb(mongoose odm) document but not the entire document如何删除 mongodb(mongoose odm) 文档中的多个字段而不是整个文档
【发布时间】:2021-09-17 07:29:10
【问题描述】:

我试图只删除我的 mongoDb 用户文档中的特定字段,但我认为使用 userModel.deleteOne({_id:id}) 是不够的,因为这会删除整个文档,这不是什么我想要。

{
    "_id": "12345678" ,
    "maidenName": null,
    "createdAt":  "2021-09-16T09:11:55.199Z" ,
    "email": "287983@gmail.com",
    "firstName": "iam1234",
    "lastName": "test14",
    "profile": "hello-world.com",
    "uid": "SKkZZ3a",
    "skills": []
}

我试过这样做UserModel.updateOne({_id:id},{$unset:{email: 1, firstName: 1}}); 此查询返回

{
  n: 0,
  nModified: 0,
  opTime: {
    ts: Timestamp { _bsontype: 'Timestamp', low_: 1, high_: 1631832363 },
    t: 24
  },
  electionId: 7fffffff0000000000000018,
  ok: 1,
  '$clusterTime': {
    clusterTime: Timestamp { _bsontype: 'Timestamp', low_: 1, high_: 1631832363 },
    signature: { hash: [Binary], keyId: [Long] }
  },
  operationTime: Timestamp { _bsontype: 'Timestamp', low_: 1, high_: 1631832363 }
}

我不知道这是什么!如何最好地解决这个问题?

【问题讨论】:

    标签: mongodb mongoose mongoose-schema


    【解决方案1】:

    您的代码正在运行,这是正确的方法。
    (你不需要输入 1,任何值都可以,比如 "")

    Test code here

    这是告诉你发生了什么

    • n: 0 => 没有找到匹配的文档
    • nModified: 0 => 没有更新文档

    我认为是过滤器,可能是简单的错误,比如错误的 id 类型? 自己找找,看看能不能找到

    【讨论】:

      猜你喜欢
      • 2012-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-29
      • 1970-01-01
      • 1970-01-01
      • 2021-11-18
      • 2022-01-13
      相关资源
      最近更新 更多