1

我必须具有以下属性的对象(仅显示相关):

主题:_id,messageIds[],

回复:_id、creatorId(String)、topicId、

我要做的是查询由特定用户(creatorId)创建的回复,但将记录限制为仅返回每个特定主题的该用户的最新消息。由于用户可能在一个主题中多次回复,我只想要他们回复的每个主题的最新消息。

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

4

1 回答 1

0

我可能错过了重点,但假设你_id是单调的(对于 mongos 来说是这样ObjectId的),那么

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

This will find the most recent reply on a specific topic by a specific author. If the _id type isn't monotic, you're out of luck and you'll probably have to investigate the list of messageIds in the topic.

于 2013-10-17T21:04:43.187 回答