插入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。)
答案 0 :(得分:0)
所以,我认为你可以在确认第一个之后插入第二个。由于插入是异步的,因此您无法确定谁先行。因此,您必须在确认第一个之后插入。