当前位置: 首页 > 知识库问答 >
问题:

用android连接MongoDB

越星晖
2023-03-14

我试图在android中连接到我的MongoDB数据库,但我遇到了问题。我得到:

I/Cluster:使用设置创建群集{hosts=[mlab_string],mode=single,requiredclustertype=unknown,serverselectiontimeout='30000 ms',maxwaitqueuesize=500}

然后我得到:

I/cluster:PrimaryServerSelector没有从群集描述中选择服务器ClusterDescription{type=unknown,connectionmode=single,all=[ServerDescription{address=mlab_string,type=unknown,state=connecting}]}。超时前等待30000毫秒

正在建立连接吗?我使用这个库作为MongoDB驱动程序,因为我读到Android不支持官方驱动程序。我注意到这个图书馆已经2年没有更新了。有更新的替代品吗?有没有其他免费的官方支持Android的NoSQL数据库?

我在Asynctask中调用此方法以产生以下错误:

    fun insert(user: User){
    var client : MongoClient? = null
    try{
        val uri = MongoClientURI("mongodb://Username:Password@mlab_String")
        client = MongoClient(uri)
        val db = client.getDatabase(uri.database)
        val coll = db.getCollection("collname")
        coll.insertOne(user.returnAsDoc())
    }catch(e: Exception){
        e.printStackTrace()
    }finally{
        try{
            client!!.close()
        }catch(e2: Exception){
            e2.printStackTrace()
        }
    }
}

共有1个答案

都昊乾
2023-03-14

像这样的事情(涉及内部连接或不支持的驱动程序;-))在Android上通常是相当困难的(甚至是不可能的)。

既然您要求替代方案,我建议您使用http://objectbox.io/。Afaik它是作为一个原生的NoSQL数据库实现的,这使得它非常快。
您基本上可以直接存储对象,而不必首先将它们转换为文档。

 类似资料:
  • 问题内容: 我正在做一个https帖子,但是却得到ssl异常的一个例外,不受信任的服务器证书。如果我做正常的HTTP,它工作正常。我是否必须以某种方式接受服务器证书? 问题答案: 我正在猜测,但是如果你想进行实际的握手,则必须让android知道你的证书。如果你只想接受任何内容,请使用以下伪代码通过Apache HTTP Client获得所需的内容: CustomSSLSocketFactory:

  • 问题内容: 我用下面的代码连接在从Android系统。它仅显示catch部分中给出的操作。我不知道这是否是连接问题。 执行此代码后,它将在avd中显示“新”。 谁能提出一些解决方案?并预先感谢 问题答案: 您无法从本机访问MySQL数据库。编辑:实际上,您也许可以使用JDBC,但不建议使用(或可能不起作用?)…请参阅Android JDBC不起作用:驱动程序上的ClassNotFoundExcep

  • 问题内容: 我有2个应用程序,一个是Servlet / Tomcat服务器,另一个是Android应用程序。 我想使用HttpURLConnection在两者之间发送和接收XML。 码: 现在,我需要使用SSL来发送XML以确保安全。 首先,我使用Java Keytool生成.keystore文件。 然后我将XML代码放在Tomcat的server.xml文件中以使用SSL 然后,将其更改为Htt

  • 问题内容: 我正在尝试创建一个应用程序,该应用程序可以连接并接收来自多个蓝牙低能耗设备的通知。我想知道如何实现这一目标。每个连接是否需要一个单独的线程?考虑到API的异步特性,如何确保能够按发现的顺序发现服务并设置通知。我目前使用的是此处提供的相同结构:https : //developer.android.com/guide/topics/connectivity/bluetooth- le.h

  • 问题内容: 最近,我在程序中遇到以下错误: 产生此错误的函数如下: 该功能在普通的JAVA中可以正常使用,但是当它复制到Android时会强制转换,我不知道为什么。 问题答案: 有两种可能性, 1)您是否检查并测试了连接。 2)最好不要设置任何连接超时,如果您设置了选择的最大时间,则bcos会引发错误,如果服务器在给定时间内没有响应。

  • 问题内容: 我试图使用此代码从我的android应用程序向服务器发送数据。 尝试使用用户名和密码对登录时出现以下错误消息。 [套接字] [0]连接/ myip:80; LocalPort = 33049(0)关闭[套接字] [/ 0.0.0.0:33049] W / System.err:org.apache.http.conn.HttpHostConnectException:与http的连接