首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mongolite的身份验证错误

mongolite的身份验证错误
EN

Stack Overflow用户
提问于 2016-06-27 17:53:57
回答 1查看 808关注 0票数 3

为了将数据保存到mongodb (使用CRAN中的mongolite包),我定义了以下函数:

代码语言:javascript
复制
  saveData <- function(data, collection) {
    # Connect to the database
    db <- mongo(collection = collection,
                url = paste0(
                  "mongodb://",
                  options()$mongodb$username, ":",
                  options()$mongodb$password, "@",
                  options()$mongodb$host, "/",
                  databaseName))
    # Insert the data into the mongo collection as a data.frame
    data <- as.data.frame(t(data))
    db$insert(data)
  }

我的数据存储在一个矩阵中,如下所示:

代码语言:javascript
复制
> mat.answers
  var1 var2 var3 var4 var5
1    90       60          70      60      50
2    85       65          75      55      50
3    80       70          75      70      25
4    75       70          80      80      55
5    80       66          80      75      55

但是,当我使用该命令保存一些数据时,我得到了以下错误:

代码语言:javascript
复制
saveData(df.answers,"SST")
Mongo Message: SCRAM: authenticating "dynamo" (step 1)
Error: Authentication failed.
Called from: mongo_collection_command_simple(col, "{\"ping\":1}")
Browse[1]> 

我在mongodb配置文件中生成了一个用户并启用了身份验证。在mongo shell中,使用这些凭据就可以很好地登录。它既不能用于本地数据库,也不能连接到mongolab提供的远程数据库。

EN

回答 1

Stack Overflow用户

发布于 2019-01-06 06:24:59

我发现以下命令允许我使用mongolite和传统的SCRAM-SHA-1身份验证模式连接到mongodb。

代码语言:javascript
复制
library(mongolite)
mongoUrl <- "mongodb://a_username:a_password@localhost:27017/admin" #<-admin here is the mongodb database that stores the authentication info

# specify your collection
colname <- "a_collection"

# specify your database
dbname <- "a_database"

# create connection (con)
con <- mongo(collection = colname, url = mongoUrl, db=dbname)

# count how many records (fyi this is just a test)
con$count('{}')
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38050869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档