首页 > 解决方案 > 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;
}

标签: javamongodb

解决方案


推荐阅读