MongoDB IDは、単一のdbクラスタで一意です。特定のObjectIDが使用されているコレクションを取得することは可能ですか?ObjectIDでMongoDBコレクションを取得
私はObjectIDの16進表現を持っており、このIDの文書が入っているコレクションを知る必要があります。
MongoDB IDは、単一のdbクラスタで一意です。特定のObjectIDが使用されているコレクションを取得することは可能ですか?ObjectIDでMongoDBコレクションを取得
私はObjectIDの16進表現を持っており、このIDの文書が入っているコレクションを知る必要があります。
私はあなたのユースケースについてはわかりませんが、_id
にObjectIDを使用している場合、短い答えは「いいえ」です。
BSON ObjectIDは、4バイトのタイムスタンプ(エポックからの秒数)、3バイトのマシンID、2バイトのプロセスID、および3バイトのカウンタで構成された12バイトの値です]
または図式:
|0 1 2 3 | 4 5 6 | 7 8 | 9 10 11 |
| time | machine | pid | inc |
だからそこに格納されている何のコレクション情報はありません。
しかし、どの値はそうあなたはthatsのが必要な場合は、コレクション情報を格納することができ、独自の規則を、使用することができ_id
のために使用することができます...
[1] http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-TheBSONObjectIdDatatype
をそれはないですすべてのコレクションに対して反復処理を行い、find({_id: <yourid>})
というクエリを呼び出すことが可能です。明らかにこれは非常に遅い操作なので、スキーマの変更や_id値としてのObjectId以外のものの使用は、おそらくあなたのための方法です。