2013-12-13 82 views
0

的地圖,我有以下DB結構:春數據蒙戈DB找到值

{ id : "1233454", 
    name : "abc", 
    elements : [ 
     { "1" : { id : "123", referenceId : "567" } }, 
     { "2" : { id : "345" } }, 
    ], 
}, 
{ id : "56789", 
    name : "def", 
    elements : [ 
     { "3" : { id : "123", referenceId : "789" } }, 
     { "4" : { id : "345" } }, 
    ], 
}, 
{ id : "98765", 
    name : "def", 
    elements : [ 
     { "3" : { id : "123", referenceId : "789" } }, 
     { "4" : { id : "345" } }, 
    ], 
} 

,我需要檢索文檔id其中referenceId是等於傳遞給方法的參數。 例如:如果方法收到「789」,它應該返回「56789」和「98765」。

在此先感謝。

+0

是否有任何特定的規則/模式在你的'elements'數組元素中?它可以是任何字符串? – chk

+0

id字段是文檔的關鍵。 「1233454」,「56789」和「98765」是文檔密鑰。 – user1982978

+0

你似乎弄錯了我的問題,請參閱下面的答案... – chk

回答

1

如果您想有效查詢,建議不要使用未知的密鑰,例如參見this discussion。如果elements中的密鑰(例如"1")遵循特定結構或受限制,則可以在查詢中使用簡單的$or來檢查所有選項,如"elements.1.referenceId" - 請參閱here如何執行此操作。