首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与猫鼬混合使用

与猫鼬混合使用
EN

Stack Overflow用户
提问于 2015-02-10 14:25:36
回答 1查看 809关注 0票数 0

我想检索一个完整的对象,它由多个相同类型的混合器组成。例如,建筑物mallofficecantinestore的混合体。所有这些都储存在收藏大楼里。

我有以下方案,其中属性mixins是其他建筑物的数组:

代码语言:javascript
复制
BuildingSchema = mongoose.Schema
    _id:    String
    mixins: [String]
    title:  String
    attr1:  []
    attr2:  []
    attr3:  []

Building = mongoose.Model "Building", BuildingSchema

是否有可能(使用某种静态/实例方法或使用预/后挂钩)检索并用自己的数据扩展/覆盖混合对象来组成最终的构建实例?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-25 18:51:03

最后,我在retrieve模型上创建了一个名为Building的静态方法,如下所示:

代码语言:javascript
复制
BuildingSchema.static "retrieve", (id, cb) ->
  @
    .findOne _id: id
    .exec (error, building) =>
      return cb error if error

      building = building.toJSON()
      mixins   = building.mixins or []

      async.reduce mixins, building, ((obj, id, cb) =>
        @retrieve id, (error, building) ->
          return cb error if error

          building = building.toJSON()
          building = deepExtend building, obj

          cb null, building

      ), (error, building) ->
        return cb error if error

        cb null, new Building building

在这里,我基本上是递归地调用函数retrieve来启用混合器。deepExtend函数帮助完成最终的对象组合。最后返回一个新实例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28434077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档