java - Mongodb/Java chat queries and model architecture with thread/messages
问题描述
I am working on a Java spring project -- using mongodb. I am curious to know if I should split the thread/messages into two models
-- threads
----id
----fromUser
----toUser
----lastMessage
-- messages
----id
----fromUser
----toUser
----lastMessage
----createdAt
----updatedAt
currently I am trying to build a list of threads fromUser that looks like this -- but I am unsure how to do an orderBy - createdAt --- but also a way of creating a list but only displaying the very latest message of a thread.
@CrossOrigin
@GetMapping("/api/chat/threads/{fromUserID}")
@ResponseBody
public BasicDBObject listChatFromUser (
@PathVariable(value="fromUserID", required=false) String fromUserID
) {
List<Chat> chats = MongoApp.mongoOps().find(query(where("fromUserID").is(fromUserID)), Chat.class);
BasicDBObject obj = new BasicDBObject();
obj.put("chats", chats);
obj.put("count", chats.size());
return obj;
}
解决方案
推荐阅读
- google-cloud-platform - 使用启动脚本时首次重启后无法访问虚拟机
- ruby-on-rails - 没有jquery的rails表单提交确认消息
- php - 语法错误,PhpSpreadsheet 的意外“使用”(T_USE)
- unity3d - 集市与团结。如何为一位主播吸引观众
- postgresql - 创建一个带有模式、表的 postgres 容器
- reactjs - react中如何保存多个动态组件的值?
- python - 如何从数据框创建 numpy 数组?
- javascript - 如何在 ASP.NET 中冻结 GridView 中的列?
- angular - 在 Angular 中手动打开特定 URL 时设置正确的活动选项卡
- python - 将数据帧拆分为多个数据帧