I'm using Sails.js version 0.10.0-rc4
. All models are using sails-mysql.
I'm trying to query a model which has an "one-to-many" association to another model (the query is happening on the "many" side).
It looks something like this:
Post.find()
.where({ category: category_id })
.populate("category")
.exec( ... )
This gives me an empty array back however when I leave out the .populate("category")
I get the correct result set.
I know that I could leave .populate("category")
out and then fetch each correlating Category object separately, but I'm wondering if there's a better solution to this problem.
It's not 100% clear what you're trying to do here. If your goal is to filter the categories that get populated on the Post
, you can do:
Post.find()
.populate("category", {where: { category: category_id }})
.exec( ... )
If you want to only retrieve Post
s with a certain category, you would do:
Category.findOne(category_id)
.populate("posts")
.exec(function(e, c) {console.log(c.posts);})
Original post was too soon
Following works for me (sails 0.12) with population:
Post.find({category: category_id})
.populate("category")
.exec( ... )
But I am still puzzled who to search in a subquery any other attribute than id..
Edit2: Seems like deep query is not yet supported: https://github.com/balderdashy/waterline/issues/266
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With