如何格式化Sitecore中MongoDB副本集的连接字符串?

如何格式化Sitecore中MongoDB副本集的连接字符串?,mongodb,sitecore,sitecore8.1,sitecore-xdb,Mongodb,Sitecore,Sitecore8.1,Sitecore Xdb,我已经使用副本集为Sitecore配置了MongoDB。 我设置了密钥文件访问控制并添加了一个用户。 但是我在创建连接字符串时遇到了问题 让我们假设我的副本集名称是rsHelloWorld,有几个mongod实例:localhost:21017、localhost:21018、localhost:21019、localhost:21020、localhost:21021(arbitor) Sitecore中的默认连接字符串为: <add name="analytics" connect

我已经使用副本集为Sitecore配置了MongoDB。 我设置了密钥文件访问控制并添加了一个用户。 但是我在创建连接字符串时遇到了问题

让我们假设我的副本集名称是
rsHelloWorld
,有几个
mongod
实例:
localhost:21017、localhost:21018、localhost:21019、localhost:21020、localhost:21021(arbitor)

Sitecore中的默认连接字符串为:

  <add name="analytics" connectionString="mongodb://localhost/analytics" />


如何使用副本集和身份验证为我的MongoDB数据库指定连接字符串?

Sitecore xDB使用标准MongoDB

在提供的示例中,连接字符串如下所示:

mongodb://mongo_admin:test%40123@localhost:21017,localhost:21018,localhost:21019,localhost:21020,localhost:21021/?replicaSet=rsHelloWorld
请注意,我已将密码中的
@
符号替换为
%40
。这是因为连接字符串中的
@
是凭据和主机名之间的分隔符

另外,请记住,您不必在连接字符串中指定所有服务器。您需要至少指定一个副本集,连接到该副本集后,xDB将接收有关副本集的完整信息,包括所有数据承载节点的地址。尽管如此,最好的做法是包含多个服务器,以确保在其中一个服务器出现故障时,应用程序仍能找到要连接的服务器。在您的情况下,包括仲裁器没有多大意义,因为xDB(或任何其他MongoDB客户端)永远不必与它通信

mongodb://mongo_admin:test%40123@localhost:21017,localhost:21018,localhost:21019,localhost:21020,localhost:21021/?replicaSet=rsHelloWorld