MongoDB ID對於單個數據庫集羣是唯一的。是否有可能獲得特定ObjectID的集合?通過ObjectID獲取MongoDB集合
我有一個ObjectID的十六進制表示,需要知道具有此ID的文檔的集合。可能嗎?
MongoDB ID對於單個數據庫集羣是唯一的。是否有可能獲得特定ObjectID的集合?通過ObjectID獲取MongoDB集合
我有一個ObjectID的十六進制表示,需要知道具有此ID的文檔的集合。可能嗎?
我不確定您的使用案例,但如果您使用ObjectID爲_id
,簡短答案是否定的。
甲BSON的ObjectID是由一個4字節的時間戳的一個12字節的值(自紀元秒),3字節的機器id,一個2字節的進程ID,和一個3字節計數器[1 ]
或者圖解:
|0 1 2 3 | 4 5 6 | 7 8 | 9 10 11 |
| time | machine | pid | inc |
所以有儲存在那裏沒有收集信息。
然而,可以使用任何價值爲_id
所以你可以使用自己的約定,如果需要,這就是它可以存儲收集的信息......
[1] http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-TheBSONObjectIdDatatype
這是不是一個本地功能,但可以遍歷所有集合(db.getCollectionNames())
並調用find({_id: <yourid>})
查詢。顯然這將是一個非常緩慢的操作,所以模式更改或使用ObjectId以外的其他值作爲_id值可能是您前進的方向。