Ватерлиния Sails 10.x: какой тип атрибута использовать для идентификатора объекта Mongo

Sailsjs: я пытаюсь определить модель. Я хотел бы добавить свойство vendorID. Типом будет идентификатор объекта monogdb из коллекции поставщика. Что-то вроде модели магазина: module.exports ={ attributes :{ vendorId : { type: <Monog ObjectId>}, <-- this would be a FK to the vendor Collection storeName: {type: 'string'} .... }

Документ Waterline говорит:

В настоящее время доступны следующие типы атрибутов:

  • нить
  • текст
  • целое число
  • плавать
  • дата
  • время
  • дата и время
  • логический
  • бинарный
  • множество
  • json

Итак, что я выбираю?

Спасибо


person tomatom    schedule 05.09.2014    source источник


Ответы (2)


Вам следует изучить ассоциации SailsJS. С ватерлинией вам не нужно иметь дело напрямую с типами id. Просто создайте атрибут, который указывает на другую коллекцию через свойства model или collection.

Вот простой пример из документации Sails/Waterline.

//Pet.js - A Pet may only have a single user
module.exports = {

    attributes: {
        name:'STRING',
        color:'STRING',
        owner:{
            model:'user'
        }
    }

}

//User.js - A user may have multiple pets
module.exports = {

    attributes: {
        name:'STRING',
        age:'INTEGER',
        pets:{
            collection: 'pet',
            via: 'owner'
        }
    }

}
person Jason Kulatunga    schedule 06.09.2014
comment
это работает. Я заметил, что ObjectID преобразуется в строку ватерлинии. Поэтому я могу использовать строку в качестве ссылки и в других коллекциях. - person tomatom; 08.09.2014

_id создается Waterline автоматически для вас, вам не нужно этого делать.

person mdunisch    schedule 06.09.2014