【问题标题】:MongoDB access data without Java DriverMongoDB 访问数据无需 Java Driver
【发布时间】:2016-01-07 07:51:01
【问题描述】:

有没有什么方法可以在没有java驱动的情况下执行mongo查询,并在java中获取原始字符串响应?

mongo服务器使用什么协议 mongo客户端?

谢谢!

【问题讨论】:

    标签: java mongodb mongo-java-driver


    【解决方案1】:

    如果只是关于查询不是插入、更新或删除操作),您可以使用包含在mongod 进程中的simple REST API。 它通常用于监控、警报脚本和管理任务

    例子:

    • 要获取集合的内容:

      http://127.0.0.1:28017/databaseName/collectionName/

    • 添加限制:

      http://127.0.0.1:28017/databaseName/collectionName/?limit=-10

    • 跳过:

      http://127.0.0.1:28017/databaseName/collectionName/?skip=5

    • 查询 {a : 1}:

      http://127.0.0.1:28017/databaseName/collectionName/?filter_a=1

    根据 mongo 的文档:

    默认情况下禁用此 API,因为它可以提供未经身份验证的数据访问。在命令行上使用 --rest 来启用,但要注意安全隐患

    选中details 以启用此功能。

    【讨论】:

    • 这是 MongoDB 提供的 API,但它是 AFAIK,而不是 MongoDB Java 驱动程序使用的 API(至少在当前版本中)
    • @Robert 我没说是MongoDB Java驱动使用的。
    • @Robert OP 想要在没有 java 驱动程序的情况下执行 mongo 查询。所以,REST 可能是一种方式。
    • 这看起来很有希望,我只需要测试直接套接字访问的性能缺陷。
    【解决方案2】:

    Mongo Java 驱动程序使用“MongoDB Wire protocol”。 它是一个面向套接字的 BSON 通信协议。

    当您连接到不使用 SSL/TLS(过滤 TCP 端口 27017)的 MongoDB 数据库时,您可以在 Wireshark 中查看/检查它。

    【讨论】:

      猜你喜欢
      • 2015-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多