sequelize для NodeJS: поддерживаются ли эти функции?

Вот несколько вопросов о функциях, поддерживаемых sequelize ( сайт проекта sequelize ), которые я хотел бы прояснить, прежде чем решать, использовать ли его:

  1. Цепочка (эффективность): при объединении нескольких запросов они собираются в один запрос к базе данных (как пакет операций), или каждый из них отправляется отдельно ?

  2. Цепочка (успех / ошибка): когда происходит объединение нескольких запросов в цепочку, и что происходит при ошибке? Выдается ли «успех» только в том случае, если все операции выполнены успешно? И если произошла ошибка, откатываются ли все операции (т. Е. Связанные операции, обрабатываемые как транзакция)

  3. Фильтрация ассоциаций: скажем, объект Crowd имеет отношение Crowd.hasMany (Person ) . Вы можете получить всех связанных людей, казнив толпу.getPersons () , но можно ли выбрать их подмножество, например crow.getPersons ({where: {age: 30}}) ?

  4. Получение связанных объектов, связанных между собой два или более шагов: скажите, что объект Crowd как отношение Crowd.hasMany (Person) и Person имеет отношение Person.hasMany (Pet) . Можно ли получить всех питомцев людей в толпе, выполнив что-то вроде crow.getPersons (). GetPets () , и если да, это будет отправлено как несколько запросов в базу данных или только один request?

  5. "Глубокий" объект: я хочу определить человека как объект:

     sequelize.define ('Person', {
    название: {
    сначала: ,
    последний: 
     }
    });
    

    Это разрешено? (Обратите внимание, что имя не будет столбцом таблицы базы данных, а будет первым и последним)

  6. «Вычисляемый» объект: Можно ли добавить к объекту поле, которое вычисляется из других полей объекта ? Например:

     sequelize.define ('Человек', {
    название: {
    сначала: ,
    последний: ,
    full:  // 

    Чтобы поле name.full на самом деле не сохранялось в базе данных (что является пустой тратой места), а просто рассчитывалось на основе двух других?

5
задан bigpopakap 28 February 2012 в 16:40
поделиться