Я довольно новичок во всей этой среде и уже некоторое время ищу.Ниже приведена моя модель схемы Mongoose, я пытаюсь выполнить вставку рабочего процесса, используя эту схему в коллекции Workflows, я изначально разбил каждый вложенный объект в схеме, а затем соединил их все в один для «WorkflowInsert».IDK, если один из них отформатирован правильно или какой метод я должен использовать для вставки объекта.Я чувствую, что что-то упустил между файлом модели и моей вставкой.
workflow.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const ObjectId = Schema.ObjectId;
const DstComponents = new Schema({
ID: String,
updated: { type: Date, default: Date.now }
});
const Transport = new Schema({
ID: String,
Type: String,
Method: Boolean,
Location: String,
Name: String,
Desc: String,
SrcComponent: String,
DstComponents: [DstComponents]
});
const IPort = new Schema({
Type: String,
Name: String,
TransportID: String,
});
const OPort = new Schema({
ID: String,
Type: String,
Name: String,
Transport: [Transport]
});
const InputPorts = new Schema({
Ports: [IPort]
});
const OutputPorts = new Schema({
Ports: [OPort]
});
const Properties = new Schema({
Ports: [{
Name: String,
Desc: String,
Value: String,
}]
});
const Component = new Schema({
id: { type: String, required: true, unique: true },
Type: String,
Name: String,
Desc: String,
WorkflowID: ObjectId,
Updated: { type: Date, default: Date.now },
Properties: [Properties],
InputPorts: [InputPorts],
OutputPorts: [InputPorts]
});
const Workflow = new Schema({
workflowid: ObjectId,
id: String,
LocalCachePath: String,
SharedCachePath: String,
Name: String,
Desc: String,
Components: [Component]
});
const WorkflowInsert = new Schema({
workflowid: ObjectId,
id: String,
LocalCachePath: String,
SharedCachePath: String,
Name: String,
Desc: String,
Components: [{
id: { type: String, required: true, unique: true },
Type: String,
Name: String,
Desc: String,
WorkflowID: ObjectId,
Updated: { type: Date, default: Date.now },
Properties: [{
Name: String,
Desc: String,
Value: String,
}],
InputPorts: [{
Ports: [{
Type: String,
Name: String,
TransportID: String,
}]
}],
OutputPorts: [{
Ports: [{
ID: String,
Type: String,
Name: String,
Transport: [{
ID: String,
Type: String,
Method: Boolean,
Location: String,
Name: String,
Desc: String,
SrcComponent: String,
DstComponents: [{
ID: String,
updated: { type: Date, default: Date.now }
}]
}]
}]
}]
}]
});
module.exports = mongoose.model('Workflow', WorkflowInsert)
module.exports = {
Workflow: Workflow,
Component: Component,
Properties: Properties,
InputPorts: InputPorts,
OutputPorts: OutputPorts,
Transport: Transport,
IPort: IPort,
OPort: OPort,
DstComponents: DstComponents
};
Код ниже - моя вставка, я пробовал несколько способов вставки в БД, но ничего не помогло, я продолжаю получать "ДБ нет«Я почти уверен, что он сообщает мои мои данные или моя схема повреждена и не может быть вставлена.Есть ли способ получить лучшую отчетность об ошибках.
api.js
router.get('/insertworkflow', (req, res) => {
//const Profile = require('../models/Profile')
const Workflow = require('../models/Workflow.js')
const fs = require('fs');
const path = require('path');
const directoryPath = path.join(__dirname, '/');
fs.readFile(directoryPath + '/workflowexampledata.json', 'utf8', function(err, data) {
if (err) throw err;
console.log(data);
var json = JSON.parse(data);
var data = { texto: json };
db.collection("workflows").insert(data, function(err, res) {
if (err) throw err;
});
});
});
определение DB
///Connecting to MOngoDb
MongoClient.connect(url, { useNewUrlParser: true }, function(err, database){
if (err) throw err;
var db = database;
console.log('connected to db mai');
});