Ich bin ein Anfänger lernen MEAN Stack und ich versuche, ein grundlegendes Forum zu bauen, um mit diesem Stapel vertraut zu werden. Bis jetzt habe ich alles außer Sub-Sub-Docs zu arbeiten. Ich habe Probleme mit CRUD bei Kommentaren innerhalb von Beiträgen innerhalb von Themen. Ich habe schon viel gesucht und nichts sieht genau so aus, wie ich es brauche. Meine Frage ist also, wie würdest du das umsetzen? Ich weiß, dass es wahrscheinlich mehrere Möglichkeiten gibt, dies zu tun, wie z. B. Refs anstelle von Sub-Sub-Dokumenten, aber da ich bereits Code für Themen wie CRUD-Themen und CRUD-Beiträge in Themen geschrieben habe, verwende ich Sub-Dokumente Verwenden Sie keine Refs, wenn ich zurückgehen und meinen Code ändern müsste.Doing CRUD auf Sub-Sub-Dokumente mit Mungo
var express = require('express');
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ObjectId = Schema.ObjectId;
var uri = "...";
mongoose.connect(uri);
var CommentSchema = new Schema({
id: ObjectId,
content: String,
author: UserSchema
});
var PostSchema = new Schema({
id: ObjectId,
title: String,
author: UserSchema,
comments: [CommentSchema]
});
var TopicSchema = new Schema({
id: ObjectId,
title: String,
moderator: UserSchema,
posts: [PostSchema]
});
var Topic = mongoose.model('Topic', TopicSchema);
var app = express();
app.delete('/topics/:topicId/posts/:postId/comments/:commentId', function(req, res) {
//What goes here?
});
app.put('/topics/:topicId/posts/:postId/comments/:commentId', function(req, res) {
//What goes here?
});
app.post('/topics/:topicId/posts/:postId/comments/:commentId', function(req, res) {
//What goes here?
});
app.get('/topics/:topicId/posts/:postId/comments/:commentId', function(req, res) {
//What goes here?
});
Vielen Dank! Ich habe diesen Code verwendet ... – MarkieMoose
app.put ('/ topics /: topicId/posts /: postId/Kommentare /: commentId', requireLogin, Funktion (req, res) { var topicId = req.params.topicId ; var postId = req.params.postId; var commentId = req.params.commentId; User.findOne ({"email": req.session.user.email}, Funktion (err, user) { if (user.role == "Benutzer" || user.role == "admin") { Topic.findById (topicId, Funktion (Fehler, Thema)) { topic.posts.id (postId) .comments.id (commentId) .content = req.body.content; topic.save (funktion (err)) { if (err) console.log (fehler); res.status (204) .end(); }); }) ; } }); }); – MarkieMoose
Ich denke jedoch, dass das letzte Beispiel, das du gabst, die eleganteste und geradlinigste (und wahrscheinlich auch effizienteste) Art ist, es zu tun, also werde ich es wahrscheinlich ändern, um es stattdessen zu verwenden. – MarkieMoose