2015-05-18 12 views
2

Мой запрос является:Laravel MongoDB Или где не работает, как это должно быть

Collection::WhereIn('email',$email)->orWhereIn('mobile',$mobile)->get(); 

Запрос Монго, который становится исполненное:

db.collection.find({"$and":[{"deleted_at":null},{"email":{"$in":["[email protected]","sa$d.c"]}}],"$or":[{"mobile":{"$in":["39834787348","349430984390"]}}]},[]) 

, который не получает должных результатов

На самом деле ниже запрос Mongo дает правильные результаты, но как выполнить это в Laravel.

db.collection.find({$or:[{"email":{$in:["[email protected]","sa$d.c"]}},{"mobile":{$in:["9892230504"]}}]}).pretty() 

Я использую пакет jeneggers/mongodb Laravels.

ответ

0

Рассмотрим примеры из документации Advanced Wheres, где вы могли бы попробовать:

DB::table('collection') 
      ->whereIn('email', $email) 
      ->orWhere(function($query) 
      { 
       $query->whereIn('mobile', $mobile); 
      }) 
      ->get(); 

Приведенный выше запрос будет производить следующий SQL:

select * from collection 
where email in ('[email protected]', 'sa$d.c') 
     or (mobile in ('39834787348', '349430984390'))