Docs 菜单
Docs 主页
/ / /
Node.js 驱动程序
/

使用BSON数据

在本指南中,您可以学习;了解如何使用 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支持所有JSON数据结构类型,并增加了对日期、不同大小整数、ObjectId 和二进制数据等类型的支持。有关支持类型的完整列表,请参阅MongoDB Server手册中的 BSON 类型页面。

Node.js驾驶员通过使用BSON二进制子类 UUID 支持 UUID。您可以使用 UUID() 构造函数创建 UUID对象。以下代码示例生成一个随机 UUID:

import { UUID } from 'mongodb';
const myUuid = new UUID();

您可以使用在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",
}

您可以使用与JavaScript中修改对象相同的表示法来修改BSON文档的内容。以下示例对之前的BSON文档进行了三项更改:

  1. 添加值为 12345 的新字段 restaurant_id

  2. 删除 cuisine 字段

  3. name 字段的值设置为 "Mongo's Pizza Place"

document.restaurant_id = "12345";
delete document.cuisine;
document.name = "Mongo's Pizza Place";

要将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.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 文档:

后退

Data Formats

在此页面上