I currently have two models: "User" and "Note". A User can create notes. This is what the "User" model currently looks like:
UserSchema = new mongoose.Schema({
    email:  String,
    password: String,
    notes: [
        {
            type: mongoose.Schema.Types.ObjectId,
            ref: "Note"
        }
    ]
});
And this is what the "Note" model currently looks like:
var NoteSchema = mongoose.Schema({
    creator: {
        type: mongoose.Schema.Types.ObjectId,
        required: true
    },
    dateOfCreation: {
        type: Date,
        default: Date.now
    },
    title: String,
    bodyText: String,
    binder: String,
    type: {
        type: String,
        default: "Text"
    },
    audioPath: String,
    summarizedBodyText: String,
    summarizedAudioNote: String
});
And this is my POST route which creates a note and pushes it to the appropriate user:
app.post("/newNote", function(req, res) {
    var newNote = {creator: req.user._id.toString(), title : "Untitled note"}
    Note.create(newNote, function(error, newNote) {
        if (error) {
            console.log(error);
        }
        else {
            User.findByIdAndUpdate(
                req.user._id.toString(),
                {
                    $push: {
                        "notes": newNote
                    }
                },
                {
                    safe: true,
                    upsert: true,
                    new : true
                },
                function(err, model) {
                    console.log(err);
                }
            );
            res.render("interface");
        }
    });
});
This route pushes the note _id to the user:
However, I would like the full note schema to appear in the user's document, not just the ObjectID. How would I go about doing this? Thanks so much!
via Russell C.

 
No comments:
Post a Comment