Mongoose二级连表查询

原创 黄良钵  2018-05-17 00:58  阅读 233 次 评论 0 条

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.  })

 

历史上的今天:

关注我们:请关注一下我们的微信公众号:扫描二维码黄良钵博客的公众号,公众号:HLB_Blog
版权声明:本文为原创文章,版权归 黄良钵 所有,欢迎分享本文,转载请保留出处!

发表评论


表情