0

私はmongoに2つのコレクションを持っています。まず、実際のデータです。

{ "_id" : "internal_key1", "data" : "some data1" }
{ "_id" : "internal_key2", "data" : "some data2" }
{ "_id" : "internal_key3", "data" : "some data3" }

もう1つは、外部サービスによって内部キーに提供されるキーのマップです。

{ "_id" : "ext_key111", "internal" : "internal_key1" }
{ "_id" : "ext_key222", "internal" : "internal_key2" }
{ "_id" : "ext_key333", "internal" : "internal_key3" }

外部キーしかない場合、1つのクエリでデータを取得できますか(たとえば、「ext_key111」で「somedata1」を取得できますか)。もちろん、evalのようなものは数えません。

4

1 に答える 1

1

簡単な答えはNOです。

基本的に参加を要求しており、MongoDBは明示的に参加を許可していません。

ただし、要件によっては、次の構造で解決できる場合があります。

{ "_id" : "internal_key1", "ext_id": "ext_key111", "data" : "some data1" }

に追加のインデックスを作成できますext_id。あなたはそれをあなたのデータと一致するように見えるユニークにすることさえできます。

db.ensureIndex({ ext_id: 1 }, { unique: true, background: true })
于 2012-06-24T05:04:22.610 に答える