mongodb - Check if value exist into array field mongoid rails -


i have groups field in mongodb database

"groups" : "[\"5514efcc6970640f40150100\", \"5514efcc6970640f40160100\", \"5514efcc6970640f40170100\", \"5514efcc6970640f40180100\"] 

please suggest query check if field exist above database array.

like modelname.find(:groups=> 5514efcc6970640f40150100)

looks have string in groups, not array. string looks called inspect on array of bson objectids in ruby , stored stringified array in mongodb.

the leading double quote here:

           ⬇ "groups" : "[\"5514efcc6970640f40150100\", ...            ⬆ 

tells you have string. inside string have looks array of strings still string.

if that's have think you're stuck regex searches (which slow), like:

model.where(:groups => /"5514efcc6970640f40150100"/) 

that assumes groups strings consistently formed , stringified arrays of hexadecimal strings.

if case i'd suggest fix database , code use real arrays in groups.


if groups array of hex strings like:

"groups" : ["5514efcc6970640f40150100", ... 

then can query scalar field , let mongodb unwrap array you:

model.where(:groups => '5514efcc6970640f40150100') 

Comments

Popular posts from this blog

google chrome - Developer tools - How to inspect the elements which are added momentarily (by JQuery)? -

angularjs - Showing an empty as first option in select tag -

php - Cloud9 cloud IDE and CakePHP -