由子文档ID填充的猫鼬

时间:2019-12-09 10:16:33

标签: mongodb mongoose

  

假定以下架构:

Aschema

  ASchema = {
    type: { type: ObjectId, ref: BModel }
  }

  /**
   * ADoc = { 
   *    _id: 00a1, 
   *    type: 00b1001 
   * },
   * 
   */ 

BSchema

  BSchema = {
    children: [{ 
      name: String, 
    }]
  }

  /**
   * BDoc = { 
   *    _id: 00b1,
   *    children: [{ 
   *      _id: 00b1001,
   *      name: 'b1'
   *    }, {
   *      _id: 00b1002,
   *      name: 'b2'
   *    }]
   * }
   * 
   */

当我通过_id找到“ 00a1”时,我将得到以下结果

  AModel.find({_id: '00a1'}).lean();
  /**
   * {
   *    _id: 00a1,
   *    type: 00b1001
   * }
   */

如您所见,我的ASchema类型ref引用了B文档中子文档的ObjectId

我想得到这个结果

  /**
   * {
   *    _id: 00a1,
   *    type: {
   *      _id: 00b1001,
   *      name: 'b1'
   *    }
   * }
   */

我知道这里有很多人,但是我没有人,希望得到大家的帮助,谢谢!

我发布了相同的问题,但是描述不够清晰。 How to use populate with sub-doc ObjectId

0 个答案:

没有答案