从Keystone.js中带有猫鼬的父级查询和映射单向引用的子级和子级子级

我哈菲德

我得到了具有一对多关系的三个模型。简单的树。我需要的是一种查询结构化关系树的简单有效的方法,最好类似于mongoose.populate(),由于我的父模型上没有id,所以我无法使用它。我想在父级上保留子级id会很有效,但是Keystone默认情况下不提供此功能,而且我无法编写更新回调来控制关系更改。我尝试并浪费了太多时间,发现自己误入歧途,而也许我想要实现的目标要容易得多,但我只是看不到它。

这是剥离的代码:

类别模型

Category.add({
    name: { type: String}
});
Category.relationship({ path: 'sections', ref: 'Section', refPath: 'category' });

部门模型,类别的子级

Section.add({
    name: { type: String,  unique: true, required: true}
    category: { type: Types.Relationship, ref: 'Category', many: false}
});
Section.relationship({  path: 'articles', ref: 'Article', refPath: 'section'});

物品模特,科的孩子

Article.add({
    name: { type: String, required: true}
    section: { type: Types.Relationship, ref: 'Section', many: false }
});

我想获得一个类别的结构化视图,其中包括所有子代及其各自的子代子,如下所示:

[ { _id: 57483c6bad451a1f293486a0,
    name: 'Test Category',
    sections: [
        { _id: 57483cbbad451a1f293486a1,
        name: 'Test Section',
        articles: [ 
            { _id: 57483c6bad451a1f293486a0,
             name: 'Test Category' } 
        ]
    ]
} ]
我哈菲德

这就是我的做法。效率不高,但至少可以正常工作。我只需要一个就不会在一级父母中放任何东西。

// Load current category
view.on('init', function (next) {

    var q = keystone.list('Category').model.findOne({
        key: locals.filters.category
    });

    q.exec(function (err, result) {

        if (err || !results.length) {
            return next(err);
        }

        locals.data.category = result;
        locals.section = locals.data.category.name.toLowerCase();           
        next(err);
    });

});


// Load sections and articles inside of them
view.on('init', function (next) {
    var q = keystone.list('Section').model.find().where('category').in([locals.data.category]).sort('sortOrder').exec(function(err, results) {

        if (err || !results.length) {
            return next(err);
        }

        async.each(results, function(section, next) {
            keystone.list('Article').model.find().where('section').in([section.id]).sort('sortOrder').exec(function(err, articles){
                var s = section;
                if (articles.length) {
                    s.articles = articles;
                    locals.data.sections.push(s);
                } else {
                    locals.data.sections.push(s);
                }
            });             

        }, function(err) {
            next(err);
        });

        next(err);
    });
});

但是现在我又遇到了另一个问题。我使用Jade 1.11.0作为模板,有时它不会在视图中显示数据。我将针对此问题发布另一个问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用JPA批注自动从父级删除子级和从子级删除父级

来自分类Dev

NHibernate映射-自引用:父级和子级

来自分类Dev

HTML溢出子级和父级DIV

来自分类Dev

SQL Order by,父级,子级和排序顺序

来自分类Dev

选择语句返回父级和无限子级

来自分类Dev

在Eclipse中折叠父级和子级Java类

来自分类Dev

Keystone JS中的验证错误

来自分类Dev

LINQ查询外部父级和子级(嵌套)表

来自分类Dev

按父级和子级排序数组

来自分类Dev

从Keystone.js中带有猫鼬的父级查询和映射单向引用的子级和子级子级

来自分类Dev

创建对象父级,将子级嵌套在猫鼬中

来自分类Dev

在同一表格中显示子级和父级关系(如果有)

来自分类Dev

在子级中访问父级ngForm

来自分类Dev

实体框架核心父级/子级带有多级子级的清理查询

来自分类Dev

在父级中定义的方法中访问父级和子级变量-PHP

来自分类Dev

使用父级和子级从表中获取值

来自分类Dev

在父级中捕获子级错误

来自分类Dev

父级和子级中的CSS绝对定位

来自分类Dev

在Eclipse中折叠父级和子级Java类

来自分类Dev

猫鼬-查询子文档,比较父级和子级中的元素

来自分类Dev

最佳选择:查询父级和子级的查询链或从父级的子级对象中选择

来自分类Dev

给定父级ID和子级,在lodash中嵌套父级子级关系

来自分类Dev

使用递归获得父级值和子级值及其所有子级的子级值

来自分类Dev

如何在Keystone JS中添加Sourcemap

来自分类Dev

休眠:无法级联删除单向子级父级

来自分类Dev

查询父级时如何获取猫鼬子文档数组中的聚合值总和?

来自分类Dev

wordpress 查询菜单顶级父级的所有子级

来自分类Dev

在 Keystone js 中禁用 TinyMCE

来自分类Dev

从给定数组中获取特定父级的所有子级和孙子级

Related 相关文章

  1. 1

    使用JPA批注自动从父级删除子级和从子级删除父级

  2. 2

    NHibernate映射-自引用:父级和子级

  3. 3

    HTML溢出子级和父级DIV

  4. 4

    SQL Order by,父级,子级和排序顺序

  5. 5

    选择语句返回父级和无限子级

  6. 6

    在Eclipse中折叠父级和子级Java类

  7. 7

    Keystone JS中的验证错误

  8. 8

    LINQ查询外部父级和子级(嵌套)表

  9. 9

    按父级和子级排序数组

  10. 10

    从Keystone.js中带有猫鼬的父级查询和映射单向引用的子级和子级子级

  11. 11

    创建对象父级,将子级嵌套在猫鼬中

  12. 12

    在同一表格中显示子级和父级关系(如果有)

  13. 13

    在子级中访问父级ngForm

  14. 14

    实体框架核心父级/子级带有多级子级的清理查询

  15. 15

    在父级中定义的方法中访问父级和子级变量-PHP

  16. 16

    使用父级和子级从表中获取值

  17. 17

    在父级中捕获子级错误

  18. 18

    父级和子级中的CSS绝对定位

  19. 19

    在Eclipse中折叠父级和子级Java类

  20. 20

    猫鼬-查询子文档,比较父级和子级中的元素

  21. 21

    最佳选择:查询父级和子级的查询链或从父级的子级对象中选择

  22. 22

    给定父级ID和子级,在lodash中嵌套父级子级关系

  23. 23

    使用递归获得父级值和子级值及其所有子级的子级值

  24. 24

    如何在Keystone JS中添加Sourcemap

  25. 25

    休眠:无法级联删除单向子级父级

  26. 26

    查询父级时如何获取猫鼬子文档数组中的聚合值总和?

  27. 27

    wordpress 查询菜单顶级父级的所有子级

  28. 28

    在 Keystone js 中禁用 TinyMCE

  29. 29

    从给定数组中获取特定父级的所有子级和孙子级

热门标签

归档