MongoDB没有按顺序插入PHP驱动程序

时间:2015-11-30 08:44:56

标签: php mongodb

插入MongoDB数据库时出现问题。它没有按正确的顺序插入数据库。

我们阅读了MongoDB中的写作问题: http://www.php.net/manual/en/mongo.writeconcerns.php

我们使用mongoDB 2.6和PHP驱动程序1.6以及以下示例代码:

set_message_sample('1');
set_message_sample('2');

set_message_sample($id) {
$connecting_string = sprintf('mongodb://%s:%d/%s', $hosts, $port,$database), // fill with right connection setting
$connection=  new Mongo($connecting_string,array('username'=>$username,'password'=>$password)); // fill with proper authentication setting

$dbname = $connection->selectDB('dbname');

$collection = $dbname->selectCollection('collection');
$post = array(
    'title' => $id,
    'content' => 'test ' . $id,
);
$posts->insert($insert,array("w" => "1"));

有时结果是在“1”之前将“2”插入数据库。我们希望一直以正确的顺序插入(第一个“1”和下一个“2”)。我还注意到我们使用由mongoDB自动设置的mongoID来订购集合。

我们检查了很多选项,但问题没有解决。我们怎么解决它? (我们如何禁用缓存或将插入队列隔离到MongoDB。)

1 个答案:

答案 0 :(得分:0)

所以,我认为你可以在确认第一个之后插入第二个。由于插入是异步的,因此您无法确定谁先行。因此,您必须在确认第一个之后插入。