You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在mongosh中为数组内的子文档插入ObjectId

在mongosh中为数组子文档设置ObjectId类型的_id

方法1:自动生成新的ObjectId

直接调用ObjectId()无参构造函数,MongoDB会自动生成一个全新的ObjectId:

db.polls.insert({
  "pollListOfOptions": [
    {
      "sub_array": [
        {
          "name": "test"
        }
      ],
      "_id": ObjectId() // 自动生成新的ObjectId类型值
    }
  ]
})

方法2:将已有字符串ID转为ObjectId类型

如果你已经有一个合法的24位十六进制字符串格式的ObjectId(比如示例中的"6421569b123123adabc696399"),可以把字符串作为参数传入ObjectId()构造函数,将其转换为ObjectId类型:

db.polls.insert({
  "pollListOfOptions": [
    {
      "sub_array": [
        {
          "name": "test"
        }
      ],
      "_id": ObjectId("6421569b123123adabc696399") // 把字符串转为ObjectId类型
    }
  ]
})

注意事项

  • 传入ObjectId()的字符串必须是合法的24位十六进制字符,否则会触发格式错误。
  • 子文档的_id无需全局唯一,但建议在所属数组内保持唯一性,避免后续更新、查询操作出现冲突。

内容的提问来源于stack exchange,提问作者David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 11:39:56