文档菜单
文档首页
/ / /
Node.js 驱动
/ / /

_id

本页内容

  • 概述
  • 指定主键工厂
  • 附加信息

在本指南中,您可以学习如何使用MongoDB Node.js驱动程序,通过使用主键工厂来生成您自己的_id值。

主键工厂允许您在插入操作中不指定_id时,在您的文档中创建唯一的标识符。插入操作。默认的主键工厂生成ObjectId值。

注意

更新操作

驱动程序不使用主键工厂进行更新操作,因为它无法确定是否应用主键工厂。如果在更新操作中指定了主键工厂并且执行了插入操作,则服务器将为该文档自动生成一个ObjectId

如果您想使用您指定的主键工厂,请先执行一个查找操作,然后执行一个更新插入操作。

要指定主键工厂,将pkFactory选项应用于您的MongoClient实例。

以下代码片段将pkFactory选项应用于生成_id值的类型为uuid

const { UUID } = require('bson');
...
const client = new MongoClient(uri, {
pkFactory: { createPk: () => new UUID().toBinary() }
});

注意

数据一致性

如果您插入一个具有与主键工厂指定的类型不同的类型的_id字段的文档,那么您将会有不一致的数据。

例如,如果您在一个生成 uuid 类型的主键工厂上执行以下插入操作,您的 _id 值将包含 uuid字符串 类型。

myColl.insertOne({ _id: "user1388", ... });

要了解更多关于本节中讨论的类型、接口和类的信息,请参阅以下资源

  • pkFactory

  • _id 字段

  • 单次操作插入或更新

  • 检索数据

  • 修改文档

  • 插入文档

返回

插入