尝试写入MongoDB副本集时出现PHP错误

时间:2012-07-06 15:51:57

标签: php mongodb mongodb-php

我无法写入/插入位于另一台计算机上的复制副本。这是执行的代码:

<?php
//Create a connection
$connection = new Mongo("mongodb://user:password@mycompany.com:27017/dbName", array("persist" => "pcName", "replicaSet"=>"myReplSet"));

//Select a database
$db = $connection->dbName;

//Select a collection
$collection = $db->testCollection;

//Add a record
$obj = array("FirstName" => "Brian", "LastName"=>"Renze", "Email"=>"abc@me.com");
$collection->insert($obj);
?>

我收到一个错误:致命错误:未捕获异常'MongoCursorException',消息'错误或格式错误的命令请求?'后跟下一个异常'MongoCursorException',消息'couldn不确定主人

没有任何内容写入数据库,但我不确定我使用的代码有什么问题。这是php.net上php-mongo教程的几乎完全复制。

我们的mongoDB实例仅在直接连接到数据库时才可用(在本例中为dbName),那么我应该取出“选择数据库”步骤吗?

如何找到replicaSet的主实例?这不应该自动发生吗?

有什么建议吗?

谢谢, Brian Renzenbrink

1 个答案:

答案 0 :(得分:0)

我认为您正在尝试使用副本集,而无需进行一次设置。

如果删除replicaSet参数:

$connection = new Mongo("mongodb://user:password@mycompany.com:27017/dbName", array("persist" => "pcName"));

这应该有效。

如果它没有工作,你可以包括mongo,php,mongo-php和你的操作系统版本吗?

您可以在此处详细了解复制:http://www.mongodb.org/display/DOCS/Replication

您可以在此处详细了解:http://www.php.net/manual/en/mongo.connecting.php