【问题标题】:MongoDB Compass does not allow ObjectId() while populating DB with "Insert Document" feature?MongoDB Compass 在使用“插入文档”功能填充数据库时不允许 ObjectId()?
【发布时间】:2021-02-11 05:32:12
【问题描述】:

我使用的是 MongoDB Compass 版本 1.25.0。

我正在尝试使用 MongoDB Compass 的“插入文档”功能插入由我的一位同事共享的文档。

但是,这表明该文档的格式不正确。

我认为它正在验证 JSON 格式,并且 ObjectId() 不是有效的 JSON 值。

我知道 Compass 会自动创建 ObjectId() 但我想明确地传递它。

我使用了 Shell,我能够插入文档。

我的问题是 MongoDB Compass 是否允许从 UI 输入 ObjectId()? 如果是,我做错了什么?

【问题讨论】:

  • 图像中看到的 "asdf" 不是有效值。 ObjectId 构造函数采用文档中所示格式的十六进制值:ObjectId
  • 我的错,这只是一个例子。更新了问题。
  • 文档视图为 JSON 格式。您需要将Extended JSON format 用于ObjectId
  • 当使用你建议的格式{"$oid":"5d505646cf6d4fe581014ab2"}它显示BSON field 'insert.documents.0' is the wrong type 'objectId', expected type 'object'
  • 查看Compass - Insert的文档。

标签: mongodb mongodb-compass


【解决方案1】:

我能够使用以下语法插入带有 ObjectId 的文档:

{
    "_id": {
        "$oid": "60261ccf416a1ed478d7357a"
    }
}

我发现文档在阐明 $oid 应该如何使用时有点偏离。 至少对于像我这样的初学者来说。

【讨论】:

    猜你喜欢
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-07
    相关资源
    最近更新 更多