2014-02-08 23 views
1

举例来说,如果我保持用户的帖子列表中的Redis,例如用户1000分的帖子和文档存储到MongoDB中的职位,但用户和岗位之间的联系被保存在里面的Redis ,我可以从redis中检索包含用户帖子的所有id的数组,但是从mongodb中检索它们的有效方法是什么?查询moongoDB从Redis的列表

做我传递一个参数的MongoDB与IDS的数组,蒙戈将获取那些给我吗?

我似乎还没有找到任何这文件,如果有人愿意帮助我!

在此先感谢!

+1

你为什么要管理两个不同的数据库有关系的双方?您应该选择Redis或mongoDB。 –

+0

,因为mongoDb没有mysql的关系部分。 我的项目的一些部分需要蒙戈的文档体系结构,而另一部分需要的MySQL关系的一部分,所以我在做什么,是,存储与IDS Redis的列表形式的所有关系数据和真实数据存储在mongo数据库文件中。 这样我可以例如对两个列表和类似的东西做一个diff,并且仍然具有noSql的效率。 –

回答

1

提取号码的每个ID文件,你可以使用$在运营商建设MongoDB的查询。请参阅从文档以下部分:

http://docs.mongodb.org/manual/reference/operator/query/in/#op._S_in

例如,您可以创建一个查询,如:

db.mycollection.find({ _id : { $in: [ id1, id2, id3, .... ] } }) 

根据多少ID将由Redis的返回,你可能要组他们在批量n个项目(例如n = 100)中运行多个MongoDB查询。国际海事组织,这是一个不好的做法,建立这样的查询包含超过几千个ID。有较小的查询更好,但接受额外的往返支付。

+0

非常感谢您的回答,所以这就是我将如何继续,这很不错:),我已经阅读了很多关于在关系部分使用redis的mongodb的文章,但没有一篇解释查询的工作原理。 至于往返行程,只要查询时间不变,我就可以支付价格。 非常感谢Didier! –