我在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”检索“某些数据1”)吗?当然,不计算类似eval的东西。
答案 0 :(得分:1)
简短的回答是否定的。
您基本上要求加入,而MongoDB明确不允许加入。
然而,根据您的要求,您可以使用以下结构:
{ "_id" : "internal_key1", "ext_id": "ext_key111", "data" : "some data1" }
您可以在ext_id
上创建其他索引。您甚至可以使其与您的数据相匹配。
db.ensureIndex({ ext_id: 1 }, { unique: true, background: true })