node.js - Mongoose one-to-many -


can explain me how organize mongoose models create 1 many connections? needed keep separate collections.

suppose have stores , items

//store.js

var mongoose = require('mongoose');  module.exports = mongoose.model('store', {     name : string,     itemsinstore: [ string] }); 

//item.js

var mongoose = require('mongoose'); module.exports = mongoose.model('item', {     name : string,     storeforitem: [string]  }); 

am doing in right way?

and how access pass data arryas? here code yo enter name item. how enter id array of id's (itemsinstore)?

app.post('/api/stores', function(req, res) {     store.create({         name: req.body.name,     }, function(err, store) {         if (err)             res.send(err);     }); }) 

you should use model reference , populate() method: http://mongoosejs.com/docs/populate.html

define models:

var mongoose = require('mongoose'); var schema = mongoose.schema;  var storeschema = schema({    name : string,    itemsinstore: [{ type: schema.types.objectid, ref: 'item' }] }); var store = mongoose.model('store', storeschema);  var itemschema = schema({     name : string,     storeforitem: [{ type: schema.types.objectid, ref: 'store' }] }); var item = mongoose.model('item', itemschema); 

save new item existing store:

var item = new item({name: 'foo'}); item.save(function(err) {    store.itemsinstore.push(item);   store.save(function(err) {     // todo   }); }); 

get items store

store   .find({}) //   .populate('itemsinstore')   .exec(function (err, stores) {     if (err) return handleerror(err);      // stores items }); 

Comments

Popular posts from this blog

routing - AngularJS State management ->load multiple states in one page -

python - GRASS parser() error -

Swift game error message -