2013-10-17 68 views
1

我必须具有以下性质(仅相关的示出)的对象:查询的MongoDB为参数和返回记录与唯一ID

主题:_id,messageIds [],

答复:_id,的CreatorID(字符串),topicId,

我在试图做的是查询由特定用户(creatorId)创建的回复,但限制记录只返回来自该用户的最新消息。由于用户可能在某个主题中回复了多次,因此我只想要他们回复的每个主题的最新内容。

我知道如何从强力角度执行此操作(涉及执行两个或多个单独的查询),但我不确定是否有能力在查询参数中执行此操作。如果有人能够提供一些见解或经验,我将不胜感激。如果您还有其他问题,或者我没有详细说明,请告诉我。

回答

0

我可能会错过了点,但假设你_id是单耳(这是mongos' ObjectId真的),怎么样

db.replies.find({"topicId" : yourTopicId, "creatorId" : yourCreatorId}). 
      sort({"_id" : -1}).limit(1); 

这将找到一个特定主题的最新回复具体作者。如果_id类型不是单调的,那么您的运气不好,您可能需要调查主题中的messageIds列表。

+0

不幸的是,它似乎我运气不好。我将尝试找到一个哈希表模块来缓解暴力破解。 – ninehundredt