2016-09-26 32 views
-2

我試圖從MongoDB集合中的數組中獲取值。從MongoDB/Twig中正確的數組條目中獲取正確值

我的數據庫條目是這樣的:

_id : "somerandomid" 
page : "page1" 
entries : [ { 
      id : "id1" 
      entry : "content" 
      } 

      { 
      id : "id2" 
      entry : "content2" 
      } ] 

我想匹配page : "page1"第一,然後找到基於「身份證」的「入口」排列在右邊的項,然後顯示該項目的「內容」 。

我想:{% set rightentry = mydb.find({page : "page1", id : "id1" }) %}

{{rightentry.content}} 

但是這並沒有給我任何東西。

回答

1

您將無法直接從MongoDB中只檢索與您的查詢匹配的子文檔。

你要遍歷與您的檢索到的文檔返回找到相匹配的一個entries

{% set document = mydb.find({page:"page1", "entries.id":"id1"}) %} 
{% for entry in document.entries %} 
    {% if entry.id === "id1" %} 
     {# display contents #} 
    {% endif %} 
{% endfor %} 
2
db.page.find({page:"page1", "entries.id":"id1"}) 

這會帶來期望的結果。