我正在尝试连接到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毫秒
是否有连接?我使用this库作为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()
}
}
}
像这些(涉及内部连接或不支持的驱动程序;-))在Android上通常很难(甚至不可能)。
既然你要求替代品,我建议http://objectbox.io/。 Afaik它是作为一个原生NoSQL数据库实现的,这使得它非常快。 您基本上可以直接存储对象,而不必先将它们转换为Documents。