【问题标题】:Fastest Way to Access MongoDB through Jetty通过 Jetty 访问 MongoDB 的最快方式
【发布时间】:2016-08-01 14:30:39
【问题描述】:

我有一个通过 AngularJS 运行的网络应用程序,我的服务器端通过码头运行,我的数据库是 MongoDB。现在,我的 webapp 访问数据库的方式是通过 websockets,但我觉得这可能不是最好/最快的方式,因为我发现处理数据需要大量时间.所以我想知道访问我的数据的最佳方式是通过 javascript、jetty 和 mongodb。谢谢! 浏览器代码:

getDataWebsocket.onmessage= function(event){
                var data = "[{" +
                event.data.substring(0, event.data.length-1) +
                "]";
                $scope.data = JSON.parse(data);
                console.log(JSON.parse(data));
                console.log($scope.data);
            };

码头代码

try {
                MongoClient mongoClient = new MongoClient("localhost", 27017);
                DB db = mongoClient.getDB("MyDB");
                DBCollection collection = db.getCollection("MyCollection");
                DBCursor cursor = collection.find();
                String data = "";
                while (cursor.hasNext()){
                    DBObject next = cursor.next();
                    data += (JSON.serialize(next)).toString() + ",";
                }
                data = data.substring(0, data.length());
                sendMessage(data, session);
            }catch(Exception e){
                sendMessage(e.getClass().getName() + ": " + e.getMessage(), session);
                System.err.println(e.getClass().getName() + ": " + e.getMessage());
            }

【问题讨论】:

  • 能否附上任何代码、数据和请求示例?
  • 让我印象深刻的是,您从您的收藏中获取并发送了所有文档。如果集合很大,则可能非常耗时。你真的需要一次所有的数据,使用分页不是更好吗?而且所有数据都是在客户端解析的,这也需要时间。
  • 对于我的应用程序,我从一开始就需要所有数据,因此分页不是一个选项。就在服务器端解析数据而言,websockets 只有三种通信形式(字符串、类型化数组和 blob),所以我无法通过 websockets 从服务器发送 json。我对数据库没有经验,所以我想知道 websockets 是否真的是实现数据库通信的最佳方式。
  • Java 驱动程序使用自己的有线协议连接到数据库。使用什么协议在服务器和客户端(AngularJS)之间建立通信是您的选择。如果您的服务器必须将数据推送到客户端(似乎并非如此),您可以使用 http 或 websocket。
  • 出于好奇,您能解释一下为什么一开始就需要所有数据吗?

标签: java mongodb jetty


【解决方案1】:

完成您正在做的事情的最佳方法是编写一个调用 java 类来访问 MongoDB 的 REST 服务。看看一个使用 AngularJS、Jetty、MongoDB 的简单应用程序 https://github.com/pmkent/angular-bootstrap-java-rest

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-09
    相关资源
    最近更新 更多