2014-01-06 44 views
0

我正在构建一个API,需要用特定的“json”结构进行响应,该结构看起来完全像来自其他API的响应。MongoDB和node.js存储自定义JSON

我的问题是,我可以如何将它存储在MongoDB中,以及如何使用此自定义json文档进行最终重播。

我需要的回应看起来就像这样:

[{ 
    "number": "510616221626", 
    "date": "2013-12-02T00:00:00+01:00", 
    "groupType": "D", 
    "type": "I", 
    "amount": "35200" 
}, { 
    "number": "510447942721", 
    "date": "2013-11-02T00:00:00+01:00", 
    "groupType": "D", 
    "type": "I", 
    "amount": "35100", 
}, { 
    "number": "509469895726", 
    "date": "2013-05-02T00:00:00+02:00", 
    "groupType": "D", 
    "type": "I", 
    "amount": "41700", 
}] 

回答

0

当我看到你在你的标签mongoose,在这里我的测试与mongoose

var mongoose = require('mongoose'); 
mongoose.connect('localhost', 'test'); 

var myJson = [{ 
    "number": "510616221626", 
    "date": "2013-12-02T00:00:00+01:00", 
    "groupType": "D", 
    "type": "I", 
    "amount": "35200" 
}, { 
    "number": "510447942721", 
    "date": "2013-11-02T00:00:00+01:00", 
    "groupType": "D", 
    "type": "I", 
    "amount": "35100", 
}]; 

var MySchema = mongoose.Schema({ 
    // use select: false to remove these default fields 
    _id: {type: mongoose.Schema.ObjectId, auto: true, select: false}, 
    __v: {type: Number, select: false}, 

    number: { type: String, unique: true }, 
    date: Date, 
    groupType: String, 
    type: String, 
    amount: Number 
}); 

MyModel = mongoose.model('MyModel', MySchema); 

// create or save to collection 
MyModel.create(myJson, callback); 

// then find then stringify then print 
function callback(err, docs) { 

    MyModel.find({}).exec(function (err, docs) { 
      console.log(JSON.stringify(docs, null, 2)); 
    }); 
} 

输出继电器字符串:

[ 
    { 
    "number": "510616221626", 
    "date": "2013-12-01T23:00:00.000Z", 
    "groupType": "D", 
    "type": "I", 
    "amount": 35200 
    }, 
    { 
    "number": "509469895726", 
    "date": "2013-05-01T22:00:00.000Z", 
    "groupType": "D", 
    "type": "I", 
    "amount": 41700 
    } 
] 

编辑:

我忘了添加auto: true到架构

_id: {type: mongoose.Schema.ObjectId, auto: true, select: false }, 
+0

谢谢,我曾尝试过这样的事情,但没有得到它的工作。 当我尝试上面的代码时,我只能得到输出:[] – morto

+0

我忘了''auto':true',所以mongo要求我们在创建文档之前添加_id – damphat

0

你不能在MongoDB中本身定义的JSON结构。 MongoDB根据给定的json文档。您可以使用ORM定义文档结构。