MongoDB ObjectId是MongoDB中默认的主键类型,它是一个12字节的BSON类型的值,由以下几部分组成:
- 时间戳 (4 字节):表示 ObjectId 的生成时间,精确到秒
- 机器标识 (3 字节):表示生成 ObjectId 的机器标识
- 进程 ID (2 字节):表示生成 ObjectId 的进程 ID
- 随机数 (3 字节):表示生成 ObjectId 的随机数
下面是一些使用 ObjectId 的示例:
1.生成ObjectId
可以通过 ObjectId() 方法生成一个新的 ObjectId,如下所示:
const ObjectId = require('mongodb').ObjectId;
const objectId = new ObjectId();
console.log(objectId); // 输出一个新的 ObjectId
2.查询ObjectId
可以通过 ObjectId() 方法将一个字符串转换成 ObjectId,如下所示:
const ObjectId = require('mongodb').ObjectId;
const objectIdStr = '60615f9f431048f081b2f7d3';
const objectId = new ObjectId(objectIdStr);
console.log(objectId); // 输出一个 ObjectId 对象
可以在查询中使用 ObjectId,如下所示:
const ObjectId = require('mongodb').ObjectId;
db.collection.find({_id: new ObjectId('60615f9f431048f081b2f7d3')});
3.ObjectId的时间戳
可以通过 ObjectId 的 getTimestamp() 方法获取 ObjectId 的时间戳,如下所示:
const ObjectId = require('mongodb').ObjectId;
const objectIdStr = '60615f9f431048f081b2f7d3';
const objectId = new ObjectId(objectIdStr);
console.log(objectId.getTimestamp()); // 输出 ObjectId 的时间戳
4.ObjectId的字符串表示
可以通过 ObjectId 的 toString() 方法将 ObjectId 转换成字符串,如下所示:
const ObjectId = require('mongodb').ObjectId;
const objectIdStr = '60615f9f431048f081b2f7d3';
const objectId = new ObjectId(objectIdStr);
console.log(objectId.toString()); // 输出 ObjectId 的字符串表示
MongoDB ObjectId 是 MongoDB 中默认的主键类型,它是一个 12 字节的 BSON 类型的值,由时间戳、机器标识、进程 ID 和随机数组成。可以通过 ObjectId() 方法生成和查询 ObjectId,通过 getTimestamp() 方法获取 ObjectId 的时间戳,通过 toString() 方法将 ObjectId 转换成字符串。