使用BSON数据
Overview
在本指南中,您可以学习;了解如何使用 Node.js驾驶员创建BSON文档、从文件读取BSON以及写入BSON写入文件。
BSON(即 Binary JSON)是MongoDB用于组织和存储数据的数据格式。您可以通过导入BSON包在JavaScript应用程序中使用BSON文档。
本指南中的代码示例使用以下 BSON 文档作为示例:
{ "address" : { "street" : "Pizza St", "zipcode" : "10003" }, "coord" : [-73.982419, 41.579505], "cuisine" : "Pizza", "name" : "Mongo's Pizza" }
注意
使用 Node.js 驱动程序的BSON包
我们建议您使用与驾驶员捆绑在一起的BSON包,以避免出现与其他BSON包的兼容性问题。您可以使用以下导入声明导入 Node.js 驱动程序的BSON包:
import { BSON } from 'mongodb';
BSON数据类型
BSON支持所有JSON数据结构类型,并增加了对日期、不同大小整数、ObjectId
和二进制数据等类型的支持。有关支持类型的完整列表,请参阅MongoDB Server手册中的 BSON 类型页面。
通用唯一 ID (UUID)
Node.js驾驶员通过使用BSON二进制子类 UUID
支持 UUID。您可以使用 UUID()
构造函数创建 UUID
对象。以下代码示例生成一个随机 UUID:
import { UUID } from 'mongodb'; const myUuid = new UUID();
创建 BSON 文档
您可以使用在JavaScript中创建对象相同的符号来创建BSON文档。将 JavaScript 对象插入集合时,Node.js驾驶员会自动将JavaScript对象转换为BSON文档。
以下示例创建一个BSON文档来表示前面的示例BSON文档:
const document = { "address": { "street": "Pizza St", "zipcode": "10003", }, "coord": [-73.982419, 41.579505], "cuisine": "Pizza", "name": "Mongo's Pizza", }
更改 BSON 文档
您可以使用与JavaScript中修改对象相同的表示法来修改BSON文档的内容。以下示例对之前的BSON文档进行了三项更改:
添加值为
12345
的新字段restaurant_id
删除
cuisine
字段将
name
字段的值设置为"Mongo's Pizza Place"
document.restaurant_id = "12345"; delete document.cuisine; document.name = "Mongo's Pizza Place";
将 BSON 写入文件
要将BSON数据写入文件,请导入文件系统模块并打开输出文件。然后,写入每个文档写入输出文件。使用 BSON.serialize()
方法确保文档以BSON格式编码。
以下示例将示例BSON文档写入 file.bson
:
import fs from 'fs/promises'; // Import the file system module import { BSON } from 'mongodb'; // Import the BSON package // Create a BSON object const bsonData = BSON.serialize(result); // Write the BSON data to a file await fs.writeFile('file.bson', bsonData); console.log('BSON data written to file.bson');
从文件中读取 BSON
要从文件中读取BSON文档,请在读取模式下打开文件。然后,在阅读文档时使用 BSON.deserialize()
方法将BSON格式的文档解码。
以下示例从 file.bson
读取示例BSON文档:
import fs from 'fs/promises'; // Import the file system module import { BSON } from 'mongodb'; // Import the BSON package // Read the BSON data from a file const data = await fs.readFile('file.bson'); const document = BSON.deserialize(data); console.log(document);
{ _id: new ObjectId('67e1823d0d63bfdf87e8928e'), address: { street: 'Pizza St', zipcode: '10003' }, coord: [ -73.982419, 41.579505 ], cuisine: 'Pizza', name: "Mongo's Pizza" }
API 文档
要进一步了解本指南所讨论的任何方法或类型,请参阅以下 API 文档: