2015-04-17 46 views
0

我想找到的文檔jobs.transcoder._idMongo db從參考文件id中找到文件嵌入了多個文件?

我曾嘗試

{jobs.transcoder._id: ObjectId("552554e4d672487c358b459c")} 

{ jobs: { $elemMatch: { "transcoder._id": ObjectId("552554e4d672487c358b459c") } } } 

,但不會導致

我的文檔是在這裏

{ 
    "_id" : ObjectId("55256f53d67248493f8b4660"), 
    "jobs" : [ 
     { 
      "_id" : ObjectId("55256f96d6724899408b459e"), 
      "transcoder" : DBRef("transcoder", ObjectId("552554e4d672487c358b459c"), "api") 
     } 
    ] 
} 

我可以此查詢? 我應該使用transcoderId代替代碼轉換器參考

+0

您的文檔不是一個有效的'json'文件 – Yogesh

+0

您的文檔似乎有一個'array'對象作爲'jobs'價值的,所以也許'工作[0] .transcode._id'? – KBN

+0

我已經嘗試過[0] .transcoder._id,但沒有結果 –

回答

1

要查找文檔_id,請運行;

{"_id":ObjectId("55256f53d67248493f8b4660")} 

如果您想通過jobs._id查找,請運行;

{"jobs._id":ObjectId("55256f96d6724899408b459e")} 

我假定DBRef作用相同this並在查找返回一個dbref。如果是這種情況,你可以跑;

{"jobs.transcoder.$id": ObjectId("552554e4d672487c358b459c")} 
+0

是它的工作原理 。{ 「jobs.transcoder的$ id。」:物件( 「552554e4d672487c358b459c」)} –

+0

很高興聽說你有一個解決方案':)' –