Как сохранить данные формы в MongoDB в моем POST-маршруте? - PullRequest
0 голосов
/ 11 марта 2019

У кого-нибудь есть идеи о том, как создать схему блога / новостей в mongodb?Я буду выполнять связывание данных с помощью встроенных данных и / или ссылки на объект.

Статьи могут иметь много категорий, а категории имеют много статей.

Я бы хотел, чтобы значения категории сохраняли идентификаторыстатьи после того, как статьи были созданы, как мне продолжить маршрут?

Если у кого-то есть совершенно другое представление о том, как это сделать, пожалуйста, дайте мне свои предложения.

Вот что я думаю ...

// Почтовый маршрут

router.post("/articles",  function(req, res){
  var title = req.body.title;
  var content = req.body.content;
  var category = req.body.category;
  var author = {
      id: req.user._id,
      username: req.user.username
  };

    var newArticle = {title: title, content: content, category: category, author:author};
    // Create a new article and save to DB
    Article.create(newArticle, function(err, article){
        if(err){
            console.log(err);
        } 
        // What do I do here to pass the id of the article into values of the category selected
        // Since I dont want to create a unique category profile for every article but rather update/add/push the ids of the newly created articles in a main Category profile 
        // does it mean I will need to create a Category profile in the global scope? which could then be accessed here and updated every time an article is created?
        //Heres my attempt?

        category.collection.update(req.body.category, article._id, function(err){
            if(err){
                console.log(err);
            }
            // req.body.category would select all the required category in the article profile to be updated?
            // article._id would be pushed into the selected category? 
        });

// Профиль категории, созданный в примере глобальной области действия?(Это происходит до маршрутов)

var newCategory = new Category({
    sport:"", //Can I leave these blank? 
    science:"",
    politic:"",
    economy:""
});

newPost.save(function(err, category){
    if(err){
        console.log(err);
    }
});  

// схемы выглядят так (идет до маршрутов)

// Схемы категорий

var categorySchema = new mongoose.Schema({

    sport: [{
        type: mongoose.Schema.Types.ObjectId,
        ref: "Article"
    }],

    science: [{        type: mongoose.Schema.Types.ObjectId,        ref: "Article"    }],

    politic: [{        type: mongoose.Schema.Types.ObjectId,        ref: "Article"    }],
});
var Category = mongoose.model("Category", campgroundSchema);

// Article Schemas

var articleSchema = new mongoose.Schema({

    sport: [{
        type: mongoose.Schema.Types.ObjectId,
        ref: "Category"
    }],

    science: [{        type: mongoose.Schema.Types.ObjectId,        ref: "Category"    }],

    politic: [{        type: mongoose.Schema.Types.ObjectId,        ref: "Category"    }],
});

var Article = mongoose.model("Article", campgroundSchema); 
...