SailsJS (0.11.0, а также 0.12-rc3): выбор родительских данных из дочернего идентификатора в отношениях 1-M

Выбор родителя с одним из дочерних элементов не работает в Sails JS. Скорее, мой оператор выбора не дает результата. Итак, ищем лучший ответ

Модель 1: Пользователь

  module.exports = {

   attributes: {

        name:{
          type:"string", 
          required:true,
          minLength: 3
        },
        age:{
          type:"int",
          required:true,
          unique: false
        },   
        pets : {
          collection : 'pet',
          via : 'owners',
          dominant: true
        }
     }
  };

Модель 2: домашнее животное

         module.exports = {

      attributes: {
          name:{
            type:"string", 
            required:true,
            minLength: 2
          },
          color:{
            type:"string",
            required:true,
            unique: false
          },
          owners:{
            model : 'user'
          }
      }
    };

Данные в системе

            {
          pets: [
            {
              name: "jimmy",
              color: "blue",
              createdAt: "2015-07-25T05:39:57.207Z",
              updatedAt: "2015-07-25T05:43:06.570Z",
              owners: "55b31e06b234f3a6bcab32c6",
              id: "55b3212db234f3a6bcab32c9"
            }
          ],
          name: "John",
          age: "20",
          createdAt: "2015-07-25T05:26:30.415Z",
          updatedAt: "2015-07-25T05:26:30.415Z",
          id: "55b31e06b234f3a6bcab32c6"
        }

Итак, операторы Select в консоли паруса:

A) Поиск дочернего элемента (домашнего животного) по идентификатору родителя (пользователей) / владельца

    sails> Pet.find({}).where({"owners":"55b31e06b234f3a6bcab32c6"}).exec(console.log)

    null [ { owners: '55b31e06b234f3a6bcab32c6',
        name: 'jimmy',
        color: 'blue',
        createdAt: '2015-07-25T05:39:57.207Z',
        updatedAt: '2015-07-25T05:43:06.570Z',
        id: '55b3212db234f3a6bcab32c9' } ]

Эта проблема решена в https://github.com/balderdashy/waterline/issues/410

Б) Поиск родителя (пользователя) по идентификатору дочернего элемента ( домашнее животное )

    sails> User.find({}).where({"pets":"55b3212db234f3a6bcab32c9"}).exec(console.log)
    undefined
    sails> User.find({}).where({"pets":"55b3212db234f3a6bcab32c9"}).exec(console.lognull []
    sails> User.find({}).where({"pets.id":"55b3212db234f3a6bcab32c9"}).exec(console.log)
    undefined
    sails> null []

    undefined
    sails> User.find({}).where({"pets":{"id":"55b3212db234f3a6bcab32c9"}}).exec(console.log)
    undefined
    sails> null []
    sails> User.find({}).where({"pets":{"id":"55b3212db234f3a6bcab32c9"}}).exec(console.log)

Не могли бы вы помочь мне в приведенном выше операторе select в SailsJS?

Спасибо и С уважением,

Радж


person Raj Rajen    schedule 25.07.2015    source источник


Ответы (1)


В соответствии с взаимодействием с командой SailsJS на https://github.com/balderdashy/waterline/issues/1102, на данный момент я принимаю это как решение. Надеюсь, что все улучшится в соответствии с другими проблемами, перечисленными в Github (ватерлиния)

sails>  Pet.find({id: '55b3212db234f3a6bcab32c9'}).populate('owners').exec(console.log)
undefined
sails> 
undefined
sails> null [ { owners: 
     { name: 'MyUser',
       age: '20',
       createdAt: '2015-07-25T05:26:30.415Z',
       updatedAt: '2015-07-25T05:26:30.415Z',
       id: '55b31e06b234f3a6bcab32c6' },
    name: 'jimmy',
    color: 'blue',
    createdAt: '2015-07-25T05:39:57.207Z',
    updatedAt: '2015-07-25T05:43:06.570Z',
    id: '55b3212db234f3a6bcab32c9' } ]

И для пользователя

 User.find({id:'55b31e06b234f3a6bcab32c6'}).populate('pets').exec(console.log)null [ { pets: 
     [ { name: 'jimmy',
         color: 'blue',
         createdAt: '2015-07-25T05:39:57.207Z',
         updatedAt: '2015-07-25T05:43:06.570Z',
         owners: '55b31e06b234f3a6bcab32c6',
         id: '55b3212db234f3a6bcab32c9' } ],
    name: 'MyUser',
    age: '20',
    createdAt: '2015-07-25T05:26:30.415Z',
    updatedAt: '2015-07-25T05:26:30.415Z',
    id: '55b31e06b234f3a6bcab32c6' } ]
person Raj Rajen    schedule 26.07.2015