Articles of bson

为什么JSON比BSON更快?

阅读完这篇文章后 ,有一个引人注目的话: BSON也被devise为快速编码和解码。 例如,整数存储为32(或64)位整数,所以它们不需要从文本中parsing出来。 这对于小整数使用比JSON更多的空间, 但parsing起来要快得多 。 从我正在阅读的内容来看,使用BSON的全部重点是因为它对CPU的征税较less,编码/处理速度更快。 但是,我使用Node.js做了一些testing,并使用本机JSON方法将BSON吹出水面。 一些testing显示JSON速度快了3到5倍。 (当使用更多的数据types时,大约在6到8之间)。 基准代码: var bson = require('bson'); var BSON = new bson.BSONPure.BSON(); var os = require('os'); console.log(" OS: " + os.type() + " " + os.release() + " (" + os.arch() + ")"); console.log("RAM: " + os.totalmem() / 1048576 + " MB (total), " + os.freemem() […]

MongoDB不能更新文档,因为_id是string,而不是ObjectId

我正在做一个restapi在mongo数据库和一个web应用程序之间交换数据。 这些数据是json格式。 更新文档时遇到麻烦: cannot change _id of a document. 事实上,在我的JSON文档的_id存储为一个string,并作为一个string反序列化。 而它在mongo中作为ObjectID存储。 这就解释了为什么mongo会产生一个错误。 在mongo中:_id:ObjectId('51051fd25b442a5849000001') 在JSON中:_id:“51051fd25b442a5849000001” 为了避免这种情况,我手动将_id属性从一个string转换为一个ObjectID 。 但它看起来很丑陋,并会与其他BSONtypes失败。 问:有没有一种干净的方法来避免这种情况,或者做一个很好的JSON / BSON转换? 以下是我用来更新文档的代码。 我用本地驱动程序与express和mongodb使用nodejs。 exports.updateById = function(req, res) { var id = req.params.id; var map = req.body; map._id = new ObjectID.createFromHexString( map._id); // Manual conversion. How to avoid this??? console.log( 'Updating map: ' + id); console.log( 'Map: […]