使用唯一ID查询MongoDb参数和返回记录

时间:2013-10-17 15:48:27

标签: node.js mongodb

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

主题:_id,messageIds [],

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

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

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

1 个答案:

答案 0 :(得分:0)

我可能会忽略这一点,但假设你的_id是单一的(对于mongos'ObjectId来说是真的),那么

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

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