【发布时间】:2022-03-22 21:55:00
【问题描述】:
我尝试将一个文档插入到集合中,但是当我指定插入文档的_id 字段时出现此错误。那么如何插入_id 类型不是ObjectId 的文档呢?
下面的代码给了我这个错误。当我删除_id 时,一切正常,但_id 将自动生成。我只是希望它是一个字符串类型。我知道这是可能的。我可以使用 MongoDB shell 制作_id 字符串。
async function foo() {
const users = client.db("test").collection("users")
users.insertOne({
_id: "a string",
name: "Tom",
age: 26,
})
}
【问题讨论】:
-
如果默认的
_id字段已经自动递增,为什么还要覆盖它?如果你需要一个字符串,你不能只添加另一个字段吗? -
如果您想为 _id 使用自定义字符串,您需要在架构 mongoosejs.com/docs/guide.html#_id 中指定它,否则它需要专门的 ObjectId 或对象 id 的字符串版本(特定长度)。你在你的架构中这样做了吗?
-
@Psidom出于某种原因,我只希望它是字符串... -
@AlexanderStaroselsky我已经浏览了您粘贴的这个链接。看来这不是MongoDB官方提供的驱动。我想知道我是否可以使用官方的mongodb包来实现这一点?
标签: node.js typescript mongodb