2014-04-08 20 views
10

Tôi đang sử dụng phiên bản Sails.js 0.10.0-rc4. Tất cả các mô hình đều sử dụng sails-mysql.Truy vấn Sails.js trên giá trị được liên kết

Tôi đang cố gắng truy vấn một mô hình có liên kết "một-nhiều" với một mô hình khác (truy vấn đang xảy ra ở phía "nhiều").

Nó trông giống như sau:

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

này mang lại cho tôi một mảng trống rỗng trở lại tuy nhiên khi tôi bỏ qua .populate("category") tôi nhận được tập kết quả chính xác.

Tôi biết rằng tôi có thể để .populate("category") ra và sau đó tìm nạp từng đối tượng Danh mục tương quan một cách riêng biệt, nhưng tôi tự hỏi nếu có giải pháp tốt hơn cho vấn đề này.

Trả lời

12

Không rõ 100% những gì bạn đang cố gắng làm ở đây. Nếu mục tiêu của bạn là để lọc các loại mà có được dân cư trên Post, bạn có thể làm:

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

Nếu bạn chỉ muốn lấy Post s với một thể loại nhất định, bạn sẽ làm gì:

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

Đoạn thứ hai không được công việc. Tôi muốn nhận bài đăng trong một danh mục cụ thể. Vấn đề là tôi chạy một loạt các truy vấn khác nhau trên tuyến đường này (nhận được bài viết theo tên, nhận được bài viết bằng số lượt xem vv). Do đó, tôi muốn có thể truy vấn "nhận bài đăng theo danh mục" theo cách tương tự. Bạn có biết nếu đó là doable? –

+1

Chạy cùng một tình huống .. Btw, @scott chỉ hoạt động đối với hiệp hội một-một? –

+1

Cùng một vấn đề ở đây. Điều này chỉ hoạt động cho các liên kết một-một và không chỉ cho một hoặc nhiều người. @Lujaw, bạn đã tìm thấy một giải pháp? –

1

bài gốc là quá sớm

Tiếp theo công trình cho tôi (buồm 0.12) với dân số:

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

Nhưng tôi vẫn đang bối rối ai để tìm kiếm trong một subquery bất kỳ thuộc tính khác hơn là id ..

Edit2: Có vẻ như truy vấn sâu chưa được hỗ trợ: https://github.com/balderdashy/waterline/issues/266

Các vấn đề liên quan