【问题标题】:Keystonejs - Querying items in RelationshipsKeystonejs - 查询关系中的项目
【发布时间】:2017-01-17 18:10:39
【问题描述】:

我想编写一个查询来过滤设置了关系的内容。

笔记本电脑.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();

查询

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

我知道这个查询是错误的,它不是那样工作的。 有人可以告诉我该怎么做吗? 我会很感激你的帮助

【问题讨论】:

    标签: node.js mongodb express mongoose keystonejs


    【解决方案1】:

    非常不明确的问题陈述。=> 过滤设置了关系的内容。

    我应该从中了解什么。当你给出一些矛盾的代码示例时也是如此。 ?

    无论如何,如果我按字面意思filter the content that has relationships set我假设你不想看到那些设置了 grafika 的笔记本电脑

    所以我的答案是,只与 null 比较。

    Laptop.model.find()
         .where('grafika', null)
         .exec(function (err, laptop) {
             locals.data.laptopy = laptop;
             next(err);
          });
    

    【讨论】:

      猜你喜欢
      • 2016-12-10
      • 1970-01-01
      • 2019-03-06
      • 2016-07-24
      • 2015-03-08
      • 1970-01-01
      • 1970-01-01
      • 2014-10-27
      • 1970-01-01
      相关资源
      最近更新 更多