Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var mongoose = require('mongoose');
- var mongoosePaginate = require('mongoose-paginate-v2');
- mongoose.connect('mongodb+srv://...', { useNewUrlParser: true }); //INSERT YOUR CONNECTION URL HERE
- var genreSchema = new mongoose.Schema({
- name: String
- });
- var gameSchema = new mongoose.Schema({
- name: String,
- genres: [{ genre: { type: mongoose.Types.ObjectId, ref: 'Genre' } }]
- });
- gameSchema.plugin(mongoosePaginate);
- const Genre = mongoose.model('Genre', genreSchema);
- const Game = mongoose.model('Game', gameSchema);
- var gList = [
- 'Action',
- 'Horror',
- 'Drama',
- 'VR',
- 'FPS'
- ];
- //inserting genre:
- Genre.insertMany(
- gList.map(e => {
- return {
- name: e
- }
- })
- ).then(doc => {
- console.log("inserted", doc)
- //looping through genre and adding a game which belong to each genre
- // converting doc array to desired format as specifeid in schema [{ genre: { type: mongoose.Types.ObjectId, ref: 'Genre' } }]
- var genArray = doc.map(gen => {
- return { genre: gen._id };
- }); //need _id field for population to be done
- var AllGenreGame = new Game({ name: "All Genre Game", genres: genArray });
- AllGenreGame.save().then(async (sG) => {
- console.log("game saved", sG);
- // game saved now we can query it:
- var result = await Game.paginate({}, {
- page: 1,
- limit: 10,
- populate: 'genres.genre'
- });
- console.log("RESULT IS", result);
- console.log("populated array", result.docs[result.docs.length - 1].genres);
- })
- })
Add Comment
Please, Sign In to add comment