mongoose 實現DBRef尋找所有子類資訊,mongoosedbref

來源:互聯網
上載者:User

mongoose 實現DBRef尋找所有子類資訊,mongoosedbref

產品表

var Mongoose = require('mongoose');var Schema = Mongoose.Schema;var Product = new Schema({    image : {              type : String          },    description : {                      type : String                  },    price : {                type : Number,                require : true            },    probability : {                      type : Number,                      require : true                  },    status :{                type : Number,                require : true,                default : 1            },    categoryId:{        type:String,        require:true    },    name : {        type :String,        require : true    }},{    _id : true,    autoIndex : true});module.exports = Mongoose.model('Product',Product);

產品分類表

    var Mongoose = require('mongoose');var Schema = Mongoose.Schema;var Category = new Schema({    child : [{        type : Schema.Types.ObjectId,        ref : 'Product'    }],    name : {                type : String,                require : true           },    description : {                type : String,                require : true            },    image : {                type : String,                require : true            }},{    _id : true,    autoIndex : true});module.exports = Mongoose.model('Category',Category);

我們在每添加一個商品的時候把該商品的id插入category中

var product = new Product({        name : '侏羅紀咖啡',        image : '/3.jpg',        descript : '還算可以',        price : 50.00,        probability : 100,        status : 1,        categoryId : "552f76bd3e0b2dfca7989da3"    })    product.save(function(err){        if(err){            console.log(err);        }else{           Category.find({_id:"552f76bd3e0b2dfca7989da3"},function(err,result){                result[0].child.push(product._id);                result[0].save(function(err){                   console.log('ok!')                })            })        }    })

在尋找一個分類資訊時同時找到它對應的多有商品的資訊

Category.find().populate('child').exec().then(function(result){        console.log(result);            })

我們來看下輸出結果:

    [ { _id: 552f76bd3e0b2dfca7989da3,    image: '/1.jpg',    description: '我們的咖啡來自巴西,安全無公害,幹吃,泡著吃都行',    name: '咖啡',    __v: 7,    child:      [ { _id: 552f76a9b396a1e8651bba8d, status: 1 },       { _id: 552f76ff61d8370ba8490ceb,         name: '暴龍咖啡',         image: '/1.jpg',         price: 20,         probability: 100,         categoryId: '552f76bd3e0b2dfca7989da3',         __v: 0,         status: 1 },       { _id: 552f773a12831318a8d51ce4,         name: '劍齒龍咖啡',         image: '/2.jpg',         price: 15,         probability: 100,         categoryId: '552f76bd3e0b2dfca7989da3',         __v: 0,         status: 1 },       { _id: 552f776a87443f28a8e66931,         name: '霸王龍咖啡',         image: '/3.jpg',         price: 15,         probability: 100,         categoryId: '552f76bd3e0b2dfca7989da3',         __v: 0,         status: 1 },       { _id: 552f777f87443f28a8e66932,         name: '霸王龍咖啡',         image: '/3.jpg',         price: 15,         probability: 100,         categoryId: '552f76bd3e0b2dfca7989da3',         __v: 0,         status: 1 },       { _id: 552f77846a87b934a8a45cfa,         name: '翼龍咖啡',         image: '/3.jpg',         price: 25,         probability: 100,         categoryId: '552f76bd3e0b2dfca7989da3',         __v: 0,         status: 1 },       { _id: 552f779cad597a3fa8365f63,         name: '小雞咖啡',         image: '/3.jpg',         price: 250,         probability: 100,         categoryId: '552f76bd3e0b2dfca7989da3',         __v: 0,         status: 1 },       { _id: 552f77ac294f5d4ba8006b27,         name: '侏羅紀咖啡',         image: '/3.jpg',         price: 50,         probability: 100,         categoryId: '552f76bd3e0b2dfca7989da3',         __v: 0,         status: 1 } ] } ] 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.