2014-04-08 24 views
10

Sails.js sürüm 0.10.0-rc4 kullanıyorum. Tüm modeller yelken-mysql kullanıyor.Sails.js sorgu

Başka bir modele "bire çok" ilişkiyi olan bir modeli sorgulamaya çalışıyorum (sorgu, "çok" tarafta oluyor). Ben doğru sonuç kümesini almak .populate("category") dışarıda bırakın bu geri Ancak bana boş diziyi verir

Post.find() 
    .where({ category: category_id }) 
    .populate("category") 
    .exec(...) 

:

Bu şuna benzer.

.populate("category")'dan çıkıp her bir ilişkili Kategori nesnesini ayrı ayrı getirebileceğimi biliyorum, ancak bu soruna daha iyi bir çözüm olup olmadığını merak ediyorum.

cevap

12

Burada yapmaya çalıştığınız şey% 100 net değil. Eğer amacınız Post üzerinde doldurulan kategorilere filtre ise, yapabilirsiniz: yalnızca belirli bir kategori ile Post s almak istiyorsanız

Post.find() 
    .populate("category", {where: { category: category_id }}) 
    .exec(...) 

, sen yapardın:

Category.findOne(category_id) 
     .populate("posts") 
     .exec(function(e, c) {console.log(c.posts);}) 
+3

ikinci pasajı işi yapar. Belirli bir kategoride yayın almak istiyorum. Sorun şu ki bu rotada bir grup farklı sorgular çalıştırıyorum (isme göre mesajlar al, görseli gönder vb.). Bu nedenle "kategoriye göre mesajlar" benzer şekilde sorgulamak istiyorum. Yapılabilir mi, biliyor musun? –

+1

Aynı senaryoda çalışan .. Btw, @scott bu sadece bire bir ilişki için çalışıyor? –

+1

Burada da aynı sorun var. Bu, yalnızca bire bir ya da çoktan çoğa için değil, yalnızca bire bir ilişkiler için çalışır. @ Libjaw, bir çözüm buldunuz mu? –