Mongoose二级连表查询

Mongoose二级连表查询

首先定义两个Schema,然后 model ;

DB.js

  1. // 分类
  2. let CategorieSchema = new mongoose.Schema({
  3.     "name" : String,
  4.     "img" : String,
  5.     "date": Date
  6. });
  7. CategorieSchema.index({ "date": 1});
  8. // 商品
  9. let GoodsSchema = new mongoose.Schema({
  10.     "name" : String,
  11.     "img" : String,
  12.     "date": Date,
  13.     "count": Number,
  14.     "content": String,
  15.     "categoryId": {
  16.         type: mongoose.Schema.ObjectId,
  17.         ref: 'n_categorie'  // 此处名称为let n_goods 的n_goods 区分大小写
  18.     }
  19. });
  20. GoodsSchema.index({ "name": 1, "categoryId": 1});
  21. GoodsSchema.statics = {
  22.     findCategoryByGoodsId:function (goodsId,callback) {
  23.         return this.findOne({_id: goodsId}).populate('categoryId').exec(callback)
  24.     }
  25. };
  26. //model
  27. let n_categorie = mongoose.model("n_categorie",CategorieSchema);
  28. let n_goods = mongoose.model("n_goods",GoodsSchema);
  29. exports.n_categorie = n_categorie;
  30. exports.n_goods = n_goods;

在需要的地方查询:

  1. const DB = require("../model/DB.js");
  2. DB.n_goods.findCategoryByGoodsId('5afc612ebe2db7194a3a703a',function (err ,category) {
  3.         if (err) console.log(err)
  4.         console.log(category.categoryId.name)
  5.  })

 

黄良钵

博客站长,前端开发工程师

发表评论

电子邮件地址不会被公开。 必填项已用*标注

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

Mongoose二级连表查询
返回顶部
网站稳定运行 : {{ diffYears }}年 零 {{ diffDays }}天 {{ diffHours }} 小时 {{ diffMinutes }} 分钟 {{ diffSeconds }} 秒

显示

忘记密码?

显示

显示

获取验证码

Close