1

我在向位于另一台机器上的副本集写入/更新时遇到问题。这是执行的代码:

<?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”,带有消息“无法确定主人”

没有任何东西被写入数据库,但我不确定我正在使用的代码有什么问题。它是 php.net 上 php-mongo 教程的几乎完全相同的副本。

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

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

有什么建议么?

谢谢,布赖恩·伦岑布林克

4

1 回答 1

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

于 2012-07-06T16:53:56.280 回答