2015-05-01 30 views
34

İstekli yüklü modellerin sipariş sonuçları Bir dizi bağlantılı modele sahibim. Modeller, her biri 'sipariş' adı verilen bir özellik içeren birleştirme tabloları kullanılarak ilişkilendirilmiştir. 'Model' ana modelini sorgulayabilmem ve ilişkili modelleri dahil edebilmem ve bu ilişkileri 'sipariş' alanına göre sıralayabilmem gerekiyor. 'Farklı ve en istediğiniz diyelimNode Sequelize

db.Page.findAll({ 
    include: [{ 
    model: db.Gallery 
    include: [{ 
     model: db.Artwork 
    }] 
    }], 
    order: [ 
    [ db.Gallery, 'order', 'DESC' ], 
    [ db.Gallery, db.ArtWork, 'order', 'DESC' ] 
    ] 
}) 
+5

Örnek alanlarınızın rahatsız edici isimlendirmesi. İlk olarak, her iki model de aynı ada sahip bir sahada sipariş ediliyor. Bu isim operasyonla aynı. –

cevap

65

sıralama düzeninde'

sonuçları üzerinde hiçbir etkiye sahip olup aşağıdaki 'CreatedDate' tarafından sipariş, sorgu şuna benzer:

DbCategoryModel.findAll({ 
    include: [ 
     { 
      model: DBSubcategory, 
      as: 'subcategory', 
      include: [ 
       { 
        model: DBProduct, 
        as: 'product', 
       } 
      ], 
     } 
    ], 
    order: [ 
     [ 
      {model: DBSubcategory, as: 'subcategory'}, 
      {model: DBProduct, as: 'product'}, 
      'createdDate', 
      'DESC' 
     ] 
    ] 
}) 
+0

Ve geçen sene bunu telafi ettiğimi düşünmek için. – brian

+0

order: [[db.Sequelize.col ('order'), 'DESC'], // için sayfa tablosu [db.Gallery, 'order', 'DESC'], [db.Gallery, db.ArtWork , 'order', 'DESC'] ] – Shrikant

10

da kullanıyorsanız:: Sana yapabileceğine inanıyorum

db.Page.findAll({ 
    include: [{ 
    model: db.Gallery, 
    order: ['order', 'DESC'], 
    include: [{ 
     model: db.Artwork, 
     order: ['order', 'DESC'] 
    }] 
    }], 
}) 
+1

Bu, yabancı tuşlarla birlikte çalışır mı? İşlenmemiş reddediyorum TypeError: Object.QueryGenerator.quote öğesinde Object.stringify (native) adresindeki dairesel yapıyı JSON 'a dönüştürme (/ Users/kristoffer/web/fitch/node_modules/sequelize/lib/dialects/abstract/query- generator.js: 869: 76) – Himmators

+0

Evet, "http://stackoverflow.com/questions/38145702/create-a-composite-index-with-associated-data/38201524#38201524" örneğinde çalışır. benim modelleri beyannamesi, sadece şu kodu kullanın: User.findAll ({ çiğ: 'true', şunlardır: [ { modeli: Kullanıcı Özelliği, olarak: "Kullanıcı Özelliği" } ], sırası: [ [ { modeli: Kullanıcı Özelliği olarak : 'Kullanıcı Özelliği' } 'Kullanıcı Kimliğini', 'TANIM' ] ] }) .ve ((kullanıcı) => { console.log ('kullanıcı, kullanıcı) process.exit() _why_ ve/veya soru önemli ölçüde uzun vadeli değerini artıracak cevaplar _how_ ilgili ek bağlam sağlayan }) –

2
order: [ 
[ db.Sequelize.col('order'), 'DESC'], /*If you want to order by page module as well you can add this line*/ 
[ db.Gallery, db.ArtWork, 'order', 'DESC' ] 
] 
+1

bu kod soruya cevap olsa da,. Lütfen bazı açıklama eklemek için cevabınızı [düzenleyin]. –

+0

Sorgulama modülünü değil, sadece istekli yüklemeyi emreder. – Shrikant