我是Mongodb和Backend Development的新手。我创建了一个用户可以创建json的系统。我将json存储在数据库中,但是当我检索数据时,它显示为二进制数据。如何将其转换为JSON。网上没有转换器,我广泛谷歌。谢谢。
这就是我要回来的。
{_bsontype:'Binary', sub_type:0, 职位:1269, buffer:}
这是模型
// 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;
}
});
答案 0 :(得分:0)
您应该将json: Object
更改为json: String
。字符串将为您提供所需内容,即文本,而不是二进制文件。请参阅this page以了解有关Mongoose模式类型的更多信息。
如果您想要结构化选项,而不仅仅是文本字段,请考虑使用Schema.Types.Mixed
。由于我不知道您将如何在数据库中操纵此内容,因此我无法告诉您String
或Schema.Types.Mixed
是否最适合您。不过,我会坚持String
。