2016-12-01 2 views
1
структуры

документа -Mongoid хэш запроса поля с другими поля

{ 
    "_id" : "b3bf7422-4993-4728-ae6f-98f35aa52a9c", 
    "feed_user_type" : "user",   
    "relation" : "reported_by", 
    "notification_title" : "Thank you for submitting the report. The moderators will now review the evidence.", 
    "notification_type" : { 
     "email" : false, 
     "feed" : false, 
     "notification" : true 
    }, 
    "updated_at" : ISODate("2016-12-01T12:14:41.269Z"), 
    "created_at" : ISODate("2016-12-01T12:14:41.269Z") 
} 

Эти запросы отлично работает

Userfeed.where(:notification_type.feed => true).offset(offset).limit(size).asc(:created_at) 
Userfeed.where(:feed_user_type => "user").offset(offset).limit(size).asc(:created_at) 

Первый запрос запрашивая поле в хэш и второй один простой запрос запрашивая нормальное поле и дает правильные результаты.

Но я совмещаю оба запроса, и я не получаю никаких результатов. Я попытался следующие два синтаксиса для комбинирования выше пункт запроса

userfeeds = Userfeed.where(:notification_type.feed => true,:feed_user_type => current_user.id).offset(offset).limit(size).asc(:created_at) 

userfeeds = Userfeed.where(:notification_type.feed => true).where(:feed_user_type => current_user.id).offset(offset).limit(size).asc(:created_at) 

Как я объединить поля условие запроса хэш с нормальным пунктом поля запроса?

Благодаря

+0

жаль, что была опечатка, редактировал документ – user3775217

+0

вы видите какие-либо ошибки или это вы не получаете никаких выходных данных. То, как вы комбинируете запросы, которые они работают как условие И. поэтому, если вы не получаете выход, убедитесь, что у вас есть соответствующие данные. но на первом месте вы хотите запросить тех, у кого есть фид типа уведомления true, и пользователь является текущим пользователем? –

+0

вы можете использовать .any_of ( {: notification_type.feed => true}, {: feed_user_type => current_user.id} ) это будет работать как или, и вы можете увидеть, если вы сначала получите выход. –

ответ

1

Это должно работать:

all_of(:'notification_type.feed' => true,:feed_user_type => current_user.id) 
+0

, спасибо, этот работал. – user3775217

Смежные вопросы