2017-01-27 7 views
1

У меня есть этот тип проблемы с этой коллекцией в MongoDB:Возвращение массива с вложенными массива, в котором запрос соответствует нескольким элементам

{ 
    "_id" : ObjectId("585fe33d3c63b4a81e00002b"), 
    "class" : [ 
     { 
      "name" : "class 1", 
      "people" : [ 
       { 
        "id" : "58596", 
        "name" : "mark", 
       }, 
       { 
        "id" : "45643", 
        "name" : "Susan", 
       }, 
       { 
        "id" : "85952", 
        "name" : "Loris", 
       } 
     },  
     { 
      "name" : "class 2", 
      "people" : [ 
       { 
        "id" : "58456", 
        "name" : "Sissi", 
       }, 
       { 
        "id" : "45643", 
        "name" : "Susan", 
       } 
      ]  
     } 
    ] 
} 

и у меня есть этот тип массива, [ «Лорис», «Susan»].

Я хотел бы знать, какой класс имеет оба имени.

Я знаю, что это легко, но я действительно не знаю, какой может быть правильный запрос в MongoDB.

ответ

0

Вы пробовали $in с регулярным выражением? https://docs.mongodb.com/manual/reference/operator/query/in/#op._S_in

{"class.people.name": {$in: [/Loris/, /Susan/]}} 
+0

Да, спасибо. оно работает. – AlleBo

+0

Не могли бы вы рассказать мне, как я могу взять это имя. Как переменная в php со значением «class 1»? – AlleBo

+0

Первый комментарий в http://php.net/manual/en/class.mongoregex.php показывает пример этого. – ymmyk