我必须具有以下属性的对象(仅显示相关属性):
主题:_id,messageIds[],
回复:_id、creatorId(字符串)、topicId、
我想要做的是查询特定用户(creatorId)创建的回复,但限制记录仅返回该用户针对特定主题的最新消息。由于用户可能在一个主题内回复了多次,我只想要他们回复的每个主题的最新内容。
我知道如何从强力角度执行此操作(涉及执行两个或多个单独的查询),但我不确定是否有能力在查询参数中执行此操作。如果有人能就此提供一些见解或经验,我将不胜感激。如果您还有任何其他问题,或者我是否遗漏了详细信息,请告诉我。
最佳答案
我可能没有捕获要点,但假设您的 _id
是单调的(对于 mongos 的 ObjectId
来说是这样),那又如何呢
db.replies.find({"topicId" : yourTopicId, "creatorId" : yourCreatorId}).
sort({"_id" : -1}).limit(1);
这将找到特定作者对特定主题的最新回复。如果 _id
类型不是单调的,那么您就不走运了,您可能必须调查主题中的 messageIds
列表。
关于node.js - 查询 MongoDb 参数并返回具有唯一 ID 的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19431398/