mongoose 实现DBRef查找所有子类信息

来源:互联网 发布:2017年网络新项目 编辑:程序博客网 时间:2024/06/16 21:15

产品表

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 } ] } ] 
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 八个月宝宝不吃奶粉怎么办 小孩铅超标怎么办如何排铅 宝宝突然不吃辅食怎么办 6个月宝宝不喝奶怎么办 宝宝4月不吃母乳怎么办 不吃母乳怎么办 8个月 宝宝不吃奶粉母乳又不够怎么办 宝宝只吃母乳不吃奶粉怎么办 十个月宝宝不爱吃辅食怎么办 奶水不足宝宝不吃奶粉怎么办 两个月宝宝不吃奶瓶怎么办 宝宝拉的有鼻涕怎么办 七个月宝宝拉肚子拉水怎么办 十个月宝宝拉肚子拉水怎么办 一个月宝宝拉肚子拉水怎么办 五个月的宝宝拉肚子还拉水怎么办 4岁宝宝拉肚子怎么办拉水样 刚出生的婴儿呕奶怎么办 8岁儿童腹泻呕吐怎么办 一岁宝宝呕吐腹泻怎么办 5岁儿童腹泻呕吐怎么办 4岁宝宝呕吐腹泻怎么办 7岁儿童腹泻呕吐怎么办 一个月婴儿呕奶怎么办 一个月婴儿呕奶严重怎么办 6岁宝宝大便干燥怎么办 3岁儿童干咳嗽怎么办 3岁宝宝一直咳嗽怎么办 3岁宝宝风寒咳嗽怎么办 刚出生的宝宝拉奶瓣怎么办 小孩拉痢疾带血怎么办 2岁宝宝有点拉稀怎么办 1岁宝宝有点拉稀怎么办 3岁宝宝有点拉稀怎么办 甲减粘液性水肿怎么办 五个月宝宝断奶不吃奶粉怎么办 八个半月的宝宝不爱吃饭怎么办 十个半月宝宝不爱吃饭怎么办 九个半月宝宝不爱吃饭怎么办 七个半月宝宝不爱吃饭怎么办 8个半月宝宝不爱吃饭怎么办