Mongodb 从映射中获取密钥,并在一个查询中使用它检索数据

Mongodb 从映射中获取密钥,并在一个查询中使用它检索数据,mongodb,Mongodb,我在mongo有两个收藏。首先是实际数据: { "_id" : "internal_key1", "data" : "some data1" } { "_id" : "internal_key2", "data" : "some data2" } { "_id" : "internal_key3", "data" : "some data3" } 另一个是一些外部服务提供的密钥映射到我的内部密钥: { "_id" : "ext_key111", "internal" : "internal_k

我在mongo有两个收藏。首先是实际数据:

{ "_id" : "internal_key1", "data" : "some data1" }
{ "_id" : "internal_key2", "data" : "some data2" }
{ "_id" : "internal_key3", "data" : "some data3" }
另一个是一些外部服务提供的密钥映射到我的内部密钥:

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

如果我只有外部键,我是否可以通过一个查询以某种方式检索数据(例如,给定“ext_key111”检索“some data1”?当然,不包括评估类的东西。

简单的答案是不

基本上,您要求加入,而MongoDB明确不允许加入

但是,根据您的要求,您可以使用以下结构:

{ "_id" : "internal_key1", "ext_id": "ext_key111", "data" : "some data1" }
您可以在
ext\u id
上创建附加索引。您甚至可以使其唯一,这似乎与您的数据相匹配

db.ensureIndex({ ext_id: 1 }, { unique: true, background: true })

我不必写我自己的答案,因为这正是我求助的解决方案。