注册

mongodb BSON的基本使用教程

MongoDB BSON的基本使用教程

什么是BSON

BSON是Binary JSON的缩写,是MongoDB使用的一种存储格式。与JSON类似,但是BSON支持更多类型,例如Timestamp和Binary Data等。

安装BSON

在Node.js中,可以使用npm安装bson模块,命令如下:

npm install bson

使用BSON

序列化

在JavaScript中,将一个对象序列化为BSON可以使用bson.serialize方法,如下所示:

const bson = require('bson');
const obj = { name: 'Tom', age: 20 };
const bsonData = bson.serialize(obj);
console.log(bsonData);

反序列化

使用bson.deserialize方法可以将BSON数据反序列化为JavaScript对象,如下所示:

const bson = require('bson');
const bsonData = Buffer.from(
  '3600000002746f6d00006d61696f406578616d706c652e636f6d000005616765001400000000',
  'hex'
);
const obj = bson.deserialize(bsonData);
console.log(obj);

以上代码中,我们先将BSON数据转换为Buffer对象,再使用bson.deserialize方法进行反序列化。

示例

示例一:将一个BSON文档插入到MongoDB数据库中

const bson = require('bson');
const MongoClient = require('mongodb').MongoClient;

const url = 'mongodb://localhost:27017';
const client = new MongoClient(url, { useUnifiedTopology: true });

let bsonData = null;
const obj = { name: 'Tom', age: 20 };
bsonData = bson.serialize(obj);

client.connect(function (err) {
  const collection = client.db('mydb').collection('mycol');

  collection.insertOne({ data: bsonData }, function (err, res) {
    console.log('Document inserted');
    client.close();
  });
});

以上代码中,我们先将一个JavaScript对象序列化为BSON,并将BSON数据插入到MongoDB中。

示例二:从MongoDB数据库中读取一个BSON文档并反序列化为JavaScript对象

const bson = require('bson');
const MongoClient = require('mongodb').MongoClient;

const url = 'mongodb://localhost:27017';
const client = new MongoClient(url, { useUnifiedTopology: true });

client.connect(function (err) {
  const collection = client.db('mydb').collection('mycol');

  collection.findOne({}, function (err, result) {
    const bsonData = result.data;
    const obj = bson.deserialize(bsonData);
    console.log(obj);
    client.close();
  });
});

以上代码中,我们从MongoDB中读取一个BSON文档,并使用bson.deserialize方法将其反序列化为JavaScript对象。