从 C# 驱动程序执行 MongoDB Eval 函数(MongoDB 版本 2.4)

Posted

技术标签:

【中文标题】从 C# 驱动程序执行 MongoDB Eval 函数(MongoDB 版本 2.4)【英文标题】:Execute MongoDB Eval function from C# driver (MongoDB version 2.4) 【发布时间】:2014-01-23 20:55:17 【问题描述】:

在将我的数据库版本从 2.2 更新到 2.4 后,我发现我无法从 C# 代码中执行 Database.Eval() 函数,因为“我没有执行任务的权限”。经过一番调查,我发现 MongoDB 有一些变化:

启用身份验证后,如果您没有执行指定任务的权限,db.eval() 将在操作过程中失败。 在 2.4 版中更改:您必须拥有完全的管理员权限才能运行。

http://docs.mongodb.org/manual/reference/method/db.eval/

您能告诉我如何在我的 C# 代码中指定这些管理员权限吗?

更新 1: 我没有提到我在连接字符串的开头使用 login:password 并且用户具有以下角色:角色:[“readWrite”,“dbAdmin”] 我也在使用 MongoHQ 数据库托管.

【问题讨论】:

设置具有管理员权限的用户后,您可以将用户名和密码附加到连接字符串中,如var connectionString = "mongodb://admin:password@localhost" 【参考方案1】:

您必须将正确的(dbAdmin 角色、userAdmin 角色、clusterAdmin 角色)添加到您的连接字符串用户。

1- 在连接字符串上检查您的用户

mongodb://[用户名:密码@]host1[:port1]...

2- 创建具有管理员角色db.addUser( user: "<user>", pwd: "<password>", roles: [<roles>] )的用户

见 http://docs.mongodb.org/manual/reference/user-privileges/ http://docs.mongodb.org/manual/reference/method/db.addUser/

【讨论】:

请参阅更新 1

以上是关于从 C# 驱动程序执行 MongoDB Eval 函数(MongoDB 版本 2.4)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MongoDB C# 驱动程序版本 2 中使用 $ 位置运算符

如何在 MongoDB C# 驱动程序版本 2 中使用 $ 位置运算符

使用 C# 驱动程序以指定顺序从 MongoDB 获取文档 [重复]

使用 C# 驱动程序以指定顺序从 MongoDB 获取文档 [重复]

mongodb 怎么执行sql

C# MongoDB 驱动程序 2.0 - 从近处查询返回距离