如何填充我的架构中的其他架构并查询整个对象和个别孩子?

时间:2016-02-10 13:04:15

标签: json node.js mongodb

对Node和Mongo来说是全新的。我正在向自己学习。 我有两个模式。 Tower,2.Flats

塔架构

var TowerSchema = new Schema({
name:String,
total_unit:Number,
sold_unit:Number,
flats:[{type:Schema.Types.ObjectId, ref:"Sample"}],
createdAt: { type: Date, 'default': Date.now }
});

平面架构

var FlatSchema= new Schema({
id: Number,
title:String
})
我正在单独储蓄单位和塔楼。但如何在塔楼中插入单位。

保存单位的代码

router.post('/addSampleData', function(req, res) {
var rsData = fs.readFile('./data/sample_test.json', 'UTF-8', function(err, data) {
    console.log('postdata '+data);
    var parseData = JSON.parse(data);
    console.log('sampleData '+data);
    inserFlat(parseData, res);
})
})

保存塔的代码:

router.post('/addTower', function(req, res) {
var fsRead = fs.readFile('./data/tower_sample.json', 'UTF-8', function(err, data){
    console.log('postdata '+data);
    var parseData = JSON.parse(data);
    var sampleJson = fs.readFile('./data/sample_test.json', 
        'UTF-8', function(err1, data1) {
            console.log('sampleData '+data1);
            var sampleData = JSON.parse(data1);
            insertData(parseData, res, sampleData);
        });
})

});

你可以找到正确保存单位(从磁盘上获得平坦的json),但是在保存塔时我做错了(得到塔json和扁平的json)。

请帮我解决这个问题。 我需要在塔中填充公寓

填充代码:

router.get('/flats', function(req, res) {
TowerModel.find().populate('flats').exec(function(err, flats) {
    if (err) {
        console.log('err: '+err)
        res.send({'msg ' : err})
    } else {
        console.log('flats: '+flats)
        res.json(
            {'msg ':flats}
            )
    }

  })
})

请帮帮我..

0 个答案:

没有答案