2017-02-06 2 views
0

У меня есть структуру документа, как показано ниже:Выполните поиск на главном поле коллекции и массив объектов одновременно

{ 
    "codeId" : 8.7628945723895E13, // long numeric value stored in scientific notation by Mongodb 
    "problemName" : "Hardware Problem", 
    "problemErrorCode" : "97695686856", 
    "status" : "active", 
    "problemDescription" : "ghdsojgnhsdjgh sdojghsdjoghdghd i0dhgjodshgddsgsdsdfghsdfg", 
    "subProblems" : [ 
     { 
      "codeId" : 8.76289457238896E14, 
      "problemName" : "Some problem", 
      "problemErrorCode" : "57790389503490249640", 
      "problemDescription" : "This is edited", 
      "status" : "active", 
      "_id" : ObjectId("589476eeae39b20b1c15535b") 
     }, 
     ... 
    ] 
} 

У меня есть поле поиска, который должен искать по codeId, который в основном служит parentCodeID в поисковых полей, как показано ниже

enter image description here

Теперь, наряду с parentIdCode я хочу найти codeId, problemCode, problemName и problemDescription также.

Как запросить подмодули с поиском регулярных выражений и в то же время пометить какое-то родительское поле с помощью статьи "$or" и т. Д., Чтобы добиться этого?

ответ

0

Вы можете попробовать что-то вроде этого.

query = { 
     '$or': [{ 
      "codeId":somevalue 
     }, { 
      "subProblems.codeId": { 
       "$regex": searchValue, 
       "$options": "i" 
      } 
     }, { 
      //rest of sub modules fields 
     }] 
    }; 
Смежные вопросы