node.js - 查询 MongoDb 参数并返回具有唯一 ID 的记录

标签 node.js mongodb

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

主题:_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/

相关文章:

mongodb - 仅将唯一添加到数组并在更新时保留字段计数

node.js - 错误 : grid. mongodb.GridStore 不是构造函数,使用 mongoose、Grid-fs-stream 和 grid multer 存储

node.js - Node JS 中是否也需要每个 React 库?

node.js - npm 过时并且 npm update 不起作用

javascript - Node js+错误: listen EADDRINUSE + Unhandled 'error' event

mongodb - 来自 docker-hub 的 MongoDb 拒绝连接

node.js - 在服务器路径中获取带有冒号和问号的方法

node.js - 在 Hostgator(或任何主机)上运行 Angular2

javascript - Meteor 文档中的消息计数示例如何工作?

Mongodb 数组操作