Опубликовать в мангусте схему с массивом объектов - PullRequest
0 голосов
/ 15 января 2019

Я хочу опубликовать некоторые данные в моей базе данных Монго.

Однако структура схемы смущает меня по поводу реализации.

Это схема:

var GraphSchema = new Schema({
nodes: [{id: String}],
links: [{source:String, target: String}]
});

Это то, что я пробовал до сих пор, но, похоже, это не работает:

router.post('/graphs', (req, res) => {
const graph = new Graph();
graph.nodes = [{id: req.body.nodes.id}];
graph.links = [{source: req.body.source, target: req.body.target}];


graph.save((err) => {
if(err) return res.status(500).json({ message: 'internal error' })
res.json({ message: 'saved...' })
})
});

Например, я хочу получить что-то вроде этого в качестве конечного результата:

{
"data": [
    {
        "nodes": [
            {
                "id": "root"
            },
            {
                "id": "input"
            },
            {
                "id": "component"
            }
        ],
        "links": [
            {
                "source": "component",
                "target": "root"
            }
        ]
    }
]
}

Я тестирую работу с почтальоном Я зашел в тупик в отношении того, что делать дальше, поэтому я надеюсь, что вы мне намекаете!

1 Ответ

0 голосов
/ 15 января 2019

создавая объект, создайте его вот так

router.post('/graphs', (req, res) => {

const graph = new Graph({
 nodes:[{id:req.body.nodes.id}],
 links:[{source: req.body.source, target: req.body.target}]
}); // you need to include your data inside the instance of the model when you create it that was the problem.. It should work fine now

В вашем коде вы фактически не создаете массив, который вы определили в своей схеме. Так что в соответствии с вашей схемой, как указано выше, а затем сохранить. ниже

graph.save((err) => {
if(err) {

res.status(500).json({ message: 'internal error' });
throw err;
}else{
res.send({ message: 'saved...' });
}

})
});

это способ, которым вы в данный момент разместили вопрос ... так что ответ для этого действителен, но я полагаю, этого должно быть достаточно для того, чтобы вы выяснили, в чем проблема ..

...