2015-09-17 2 views
0

С помощью этого набора данных я пытаюсь выполнить запрос, который возвращается для всего документа, ранг статей, имеющих отношение к делу. Но я не знаю, возможно ли это с помощью только манго-запроса.Mongo найти запрос с конкретным фильтром

content_business : { 
id : {….} , 
content : { 
    uid : «», 
    FL : "bla", 
    langRef : 1, 
    articles : [ 
     { 
      name : « aName », 
      rank : 104 
     }, 
     { 
      name : « unNom », 
      rank : 102 
     } 
    ] 
} 
} 

Содержание содержит langRef. Это индекс, который нужно использовать для получения правильной статьи. Здесь со значением 1 это означает, что подходящие статьи относятся к индексу 1 {name: «unNom», rank: 102}.

На данный момент я делаю db.find ({ «FL: бла»}), а затем с помощью внешней программы я получаю звание соответствующего (своего рода статей [langRef] .rank)

Но не уверен, что это лучшее решение.

У вас есть идея?

С уважением,

Blured.

+0

Вы можете сделать это с помощью агрегации, но сортировка на уровне приложения, вероятно, является более простым способом сделать это. – Philipp

+0

Возможный дубликат [как отсортировать поле в документе mongo, который находится внутри массива] (http://stackoverflow.com/questions/32605984/how-to-sort-the-field-in-the-mongo-document- который-это-внутри-массив /) – Philipp

ответ

0

Это не очень-то вроде, насколько я понимаю:

То, что я попал в записи:

content_business : { 
    id : {….} , 
    content : { 
     uid : «», 
     FL : "bla", 
     langRef : 1, 
     articles : [ 
      { 
       name : « aName », 
       rank : 104 
      }, 
      { 
       name : « unNom », 
       rank : 102 
      } 
     ] 
    } 
}, 
{ 
    id : {….} , 
    content : { 
     uid : « 99999 », 
     FL : "bla", 
     langRef : 0, 
     articles : [ 
      { 
       name : « aaaa », 
       rank : 888 
      }, 
      { 
       name : « bbbb », 
       rank : 102 
      } 
     ] 
    } 
} 

То, что я хотел бы в результате

{ 
    id : {...}, 
    content : { name : "unNom", rank : 102} 
}, 
{ 
    id : {...}, 
    content : {name : "aaa", rank : 888} 
} 

Первый в документе указывается имя unNom & ранг 102 как указано langRef is 1

во втором документе дается название «aaa» & ранг 888 как указано langRef is 0

С уважением, Blured.

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