Keystonejs - Запрос предметов в отношениях

Я хочу написать запрос для фильтрации содержимого, для которого установлены отношения.

Laptopy.js

 var keystone = require('keystone');
    var Types = keystone.Field.Types;

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

    Laptop.add({
       nazwa:{type: String, required: true},
       grafika:{type: Types.Relationship, ref: 'KartaGraficzna'}

    });
    Laptop.register();

KartaGraficzna.js

var keystone = require('keystone');
var Types = keystone.Field.Types;

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

KartaGraficzna.add({
   nazwa:{type: String, required: true},
   producent:{type: Types.Select, options: 'nVidia, AMD, Intel'},
});

KartaGraficzna.relationship({ ref: 'Laptop', path: 'grafika' });
KartaGraficzna.register();

QUERY

var Laptop = keystone.list('laptops');
Laptop.model.find()
   .populate('grafika')
   .where('grafika.nazwa', 'GTX980')
   .exec(function (err, laptop) {
      locals.data.laptopy = laptop;
      next(err);
   });

Я знаю, что этот запрос неверен, и это не так работает. Может кто-нибудь сказать мне, как это сделать? Буду благодарен за вашу помощь

1 ответ

Очень неясная формулировка проблемы.=> Отфильтруйте контент, для которого установлены отношения.

Что я должен понять из этого. и это тоже, когда вы приводите противоречивый пример кода.?

В любом случае, если я пойду словами filter the content that has relationships set, Я предполагаю, что вы не хотите видеть те ноутбуки, для которых установлена ​​графика.

Так что мой ответ, просто сравните с нулем.

Laptop.model.find()
     .where('grafika', null)
     .exec(function (err, laptop) {
         locals.data.laptopy = laptop;
         next(err);
      });
Другие вопросы по тегам