gpt4 book ai didi

node.js - Mongodb 以二进制形式存储 JSON 文件

转载 作者:太空宇宙 更新时间:2023-11-03 22:31:34 24 4
gpt4 key购买 nike

我是 Mongodb 和后端开发的新手。我创建了一个系统,用户可以在其中创建 json。我将 json 存储在数据库中,但是当我检索数据时,数据显示为二进制数据。我如何将其转换为 JSON。网上没有转换器,我广泛谷歌。谢谢。

这就是我要返回的内容。

{ _bsontype: '二进制', 子类型:0, 位置:1269, 缓冲区: }

这是模型

   // app/models/project.js
// load the things we need
var mongoose = require('mongoose');

// define the schema for our project model
var projectSchema = mongoose.Schema({


id : String,
allwork :[
{

protocol : String,
name : String,
json : Object
}
]



});



// create the model for users and expose it to our app

module.exports = mongoose.model('Project', projectSchema);

这是查询

  var Project = require('./app/models/project');
Project.findOne({ 'id' : 'pop' }, function(err, callback) {
if (err) return "Error searching person";
if(callback) {
console.log(callback.allwork);
for(var i = 0; i < callback.allwork.length; i++) {
if(callback.allwork[i].name == "zingzong"){

console.log(callback.allwork[i].json);

}
}
//socket.emit('callback_allwork', callback.allwork);
}
});
});

这会使用二进制数据而不是我最初保存的 json 记录缓冲区。

这是保存json的函数

                        callback.allwork.push({
protocol : a.user.project.protocol,
name : a.user.project.name,
json : a.user.project.json
})

callback.save(function (err) {
if(!err) {
global.mess = "Project save succesfully" ;
return;
}

});

最佳答案

您应该将 json: Object 更改为 json: String。字符串会给你你想要的,这是文本,而不是二进制。引用this page查看有关 Mongoose 架构类型的更多信息。

如果您需要结构化选项,而不仅仅是文本字段,请考虑使用Schema.Types.Mixed。由于我不知道如何在数据库中操作它,因此我无法告诉您 String 还是 Schema.Types.Mixed 最适合您。不过,我会坚持使用String

关于node.js - Mongodb 以二进制形式存储 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36438707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com