how do you retrieve an array of IDs
in Mongoid
?
arr=["id1","id2"] User.where(:id=>arr)
You can do this easily if you are retrieving another attribute
User.where(:nickname.in=>["kk","ll"])
But I am wondering how to do this in mongoid -> this should be a very simple and common operation
Remember that the ID is stored as :_id
and not :id
. There is an id
helper method, but when you do queries, you should use :_id
:
User.where(:_id.in => arr)
Often I find it useful to get a list of ids to do complex queries, so I do something like:
user_ids = User.only(:_id).where(:foo => :bar).distinct(:_id) Post.where(:user_id.in => user_ids)
Or simply:
arr = ['id1', 'id2', 'id3'] User.find(arr)
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