簡體   English   中英

如何在Keystone.js中獲得關系模型

[英]How to get relationship model in Keystone.js

因此,我嘗試從“ TestGenerator”模型的“句子”模型中獲取“代詞”模型。 我有身份證,但沒有模特。

TestGenerator模型

var TestGenerator = new keystone.List('TestGenerator', {
    map: { name: 'title' },
    autokey: { path: 'slug', from: 'title', unique: true }
});

TestGenerator.add({
    title: { type: String, required: true },
    sentences: { type: Types.Relationship, ref: 'Sentence', many: true },
});

TestGenerator.register();

var Sentence = new keystone.List('Sentence', {
    map: { name: 'title' },
    autokey: { path: 'slug', from: 'title', unique: true }
});

句子模型

Sentence.add({
    title: { type: String, required: true },
    pronouns: { type: Types.Relationship, ref: 'Pronoun', many: true },
    verbs: { type: Types.Relationship, ref: 'Verb', many: true },
});

Sentence.relationship({ ref: 'TestGenerator', path: 'sentences' });

Sentence.register();

Ponoun模型

var Pronoun = new keystone.List('Pronoun', {
    map: { name: 'english' },
    autokey: { path: 'slug', from: 'english', unique: true }, 
});

Pronoun.add({
    english: { type: String },
    russian: { type: String }
});

Pronoun.relationship({ ref: 'Sentence', path: 'pronouns' });

Pronoun.register();

還有我的控制器

view.on('init', function (next) {

    var q = keystone.list('TestGenerator').model.findOne({
        slug: locals.filters.test_genetation,
    }).populate('sentences');

    q.exec(function (err, result) {
        locals.testGenerator = result;
        locals.current_sentence = result.sentences[0];
        locals.data.englishSentence = locals.current_sentence.pronouns;
        console.log(locals.data.englishSentence);
        next(err);
    });
});

和“ locals.data.englishSentence”返回

["5739bd696ef7d78d16e9e0e5","573ac7645e3d7d7210f1c4be"]

那么我該如何解決呢? 不明白

這與貓鼬有關,實際上與Keystone不相關。 貓鼬不提供大量人口,您需要一個單獨的插件,例如mongoose-deep-populate

您是否嘗試過在populate()調用中明確包含pronouns

var q = keystone.list('TestGenerator').model.findOne({
    slug: locals.filters.test_genetation,
})
  .populate('sentences sentences.pronouns')
  .exec(function (err, result) {
    ...
  });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM