0

I have the following Schema:

var userSchema = mongoose.Schema({

    local            : {
        email        : String,
        password     : String,
        movies       : [{
                          moviename   : String,
                          rating      : Number
                        }],
    }

});

My questions are:

Can I save entries to the one after the other. I.e. can I save movies sequentially, and not all the movies (array entries) at the same time? In other words, can the movies array grow dynamically?

What I am trying to do is:

user.movies = { moviename  : "Top Gun",
                rating     : 80};
user.save(function (err) {
                    if (err)
                        console.log("Error in saving");

                    res.end(0);
                });

I believe the saving is working as I get not errors, but I'm lost at how to retrieve the entries in the array. Could someone please give me an example or a reference how to access the entries. Also, any other reference about the limitations, such as duplicate array entries (same movie).

Thank you.

1 Answer 1

1

Yes, you could add movies one by one.

1) You could add movie without retrieving item at all:

userSchema.findOneAndUpdate({_id:...},
                            {$push:{"local.movies":
                                   {movieName:"movie Name", rating:5}}},
                             {'new':true}, function(err,doc){ ... })

2) Using mongoose you could retrieve item, add movie and save:

user.local.movies.push({ moviename  : "Top Gun", rating     : 80});
user.save(function (err) {
                if (err)
                    console.log("Error in saving");

                res.end(0);
            });

Regarding accessing movies array, according your schema if you retrieve user doc, you could use user.local.movies to access movies

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.