我正在尝试通过Android应用程序连接到mongodb,Mongodb正在本地运行
MongoClient mongoClient = new MongoClient();
DB db = mongoClient.getDB("dbname");
我收到的错误是无法调用的东西:/127.0.0.1:27017/admin mongodb在后面跑。
我想知道管理员为何?我的数据库中没有像管理员这样的集合。
当我使用命令行连接时,它可以工作,我能够插入和查询数据。
我不知道出了什么问题。到目前为止,我所浏览的示例中没有提到任何需要完成的配置。
请帮助!!
答案 0 :(得分:0)
由于您在Android中运行应用程序,我会隐含地假设您的MongoDB服务器必须在不是127.0.0.1的其他IP地址上的其他地方运行。默认情况下,如果没有主机名/ IP地址,MongoClient会尝试在端口27017上连接到127.0.0.1的localhost环回地址(默认端口,直到指定其他内容),并且因为在localhost上运行MongoDB服务器实例而失败。我建议遵循:
答案 1 :(得分:0)
由于您的客户端位于与服务器不同的平台上,因此您需要指定完整的主机连接,而不是使用默认值。
那说:
请勿这样做!
您肯定不希望以这种方式通过Internet访问您的MongoDB实例。您想要的是一个Web服务来代理您的请求并将它们传递给MongoDB。您可以自己做或查看可能列在此处的内容:
http://docs.mongodb.org/ecosystem/tools/http-interfaces/
出于各种原因,将您的数据库暴露在互联网上绝不是一个好主意,但最突出的两个是安全和防火墙规则,它们不允许通过某些端口进行通信。 HTTP将随处可用,是移动应用程序最有用的通信方式。