2013-10-15 21 views

回答

4

當你和@Sammaye在意見陳述的ObjectID將可能是獨一無二的,因爲(從mongodb site拍攝)

ObjectId is a 12-byte BSON type, constructed using: 

a 4-byte value representing the seconds since the Unix epoch, 
a 3-byte machine identifier, 
a 2-byte process id, and 
a 3-byte counter, starting with a random value. 

所以它是非常不可能的它是相同。 (我似乎無法找到3字節計數器是否在所有集合中相同,或者每個集合中是否有相同的計數器)

爲了簡單起見,可以說對象數據庫中的每個記錄都是唯一的。

有沒有一個「查詢」,將搜索整個數據庫備案。 Mongodb沒有默認的方式來實現你所要求的。

對於一個不平凡的解決方案看評論

this question


更新,如果你不小心數據庫多次查詢,可以

  • 您查詢所有集合名稱的數據庫。
  • 迭代通過所有的集合名稱,並使用每個名稱查詢每個集合爲唯一對象ID
  • 如果集合返回一個對象打破循環和返回對象

(這只是描述瞭如何做到這一點,因爲你沒有說明使用的是給你一個例子什麼編程語言)

+0

謝謝。編寫一些javascript代碼(用於mongo db shell)來搜索給定對象ID的所有用戶集合必定是相當簡單的。 –

+0

是的,但它不會是一個查詢,它將使用腳本多個查詢。我會添加一些東西給我的答案呈現你的建議。 –

+0

謝謝。也許有人可以編寫用於MongoDB shell的javascript代碼。 ;) –

相關問題