javascript - 使用 mongoose.find 但每个用户一个项目
问题描述
好朋友,我正在为一个项目开发一个API,我需要从数据库中获取发送给用户或用户发送的最后一条消息。但在这些消息中,我只想为每个用户获取最多 1 条消息,以便在消息收件箱中显示最后一条消息的预览,并且在选择聊天时,将加载每个对话的所有消息。
示例(发送给 Joangel 的所有消息):
来自:Joel,至:Joangel,味精:sdffd
来自:Joel,至:Joangel,味精:234235
来自:Joel,至:Joangel,味精:551
来自:Jorge,至:Joangel,味精:ee werwe
来自:Jorge,至:Joangel,味精:sdffd55
来自:Tony,至:Joangel,味精:heeey
使用 find 时应该返回这个:
来自:Joel,至:Joangel,味精:sdffd
来自:Jorge,至:Joangel,味精:ee werwe
来自:Tony,至:Joangel,味精:heeey
如果你能帮我解决这个问题,我将不胜感激
解决方案
如果您使用的是猫鼬,那么您应该使用 model.findOne() 方法, findOne 方法文档的链接
基本上你应该做的是创建一个猫鼬模式和模型,比如,
const userSchema = new mongoose.Schema({name: String, message: String})
您可以在架构中添加更多项目,然后创建模型,
const User = new mongoose.model("User", userSchema)
每当您想使用模型执行功能时,现在将您的用户添加到模型中,您可以查询它,在您必须使用的情况下,
User.findOne({conditions which you use to find the specific user}, function(err, foundUser){Here you can do anything with that user which you queried for from your database})
推荐阅读
- c# - 如何统一动态编写视口矩形脚本
- bash - 在 bash 中将 CSV 输出为单个字符串,无需额外安装
- pandas - 用 Pandas 比较两列中的值
- python - 为什么当鼠标悬停在另一个按钮上时,会调用 tkinter 中绑定到一个按钮的函数?
- c# - 2个不同属性的虚假模拟数据相同的值
- asp.net-core - 使用密钥保管库的 AzureServiceTokenProviderException
- python - 选择不推荐使用的python模块而不是自定义模块?
- python - 如何使用训练有素的模型作为另一个模型的输入?
- php - 带有 php.handler 节点 12.x 错误的 AWS Lambda - 已解决
- algorithm - 安排范围 a (n) (a [i] <= 20) 以使相等的值形成连续段的最小成本是多少?