Порядковые номера для ID в Mongo DB - PullRequest
0 голосов
/ 05 октября 2011

В базе данных Mongo есть команда findAndModify для использования чисел с автоматическим приращением вместо идентификатора по умолчанию, но я не знаю, как использовать его для драйвера PHP (я не уверен, поддерживается ли он вообще).

Ответы [ 2 ]

2 голосов
/ 08 октября 2011

Хорошо, если вам нужно хранить инкрементные значения, я предлагаю сделать это, используя другое поле, а не поле mongodb _id. Mongodb использовал эти сгенерированные идентификаторы для возврата некоторых (я полагаю, многих, если не всех) типов запросов, особенно если у вас естьмультикластер настроен, тогда он определенно использует поле _id для определения местоположения физического диска, на котором находятся данные (я полагаю, с использованием хеш-таблицы или некоторой такой технологии - не совсем в курсе операций под капотом ядра mongo).Короче говоря, оставьте это в покое, оно предназначено для автоматически сгенерированного справочного поля.

0 голосов
/ 15 апреля 2014
<?php
$m = new MongoClient();

// select a database
$db = $m->seq;

// select a collection (analogous to a relational database's table)
$collection = $db->counters;
$user_collection = $db->user;



/**********Function to auto increment seq************/
function getNextSequence($name){
global $collection;

$retval = $collection->findAndModify(
     array('_id' => $name),
     array('$inc' => array("seq" => 1)),
     null,
     array(
        "new" => true,
    )
);
return $retval['seq'];
}

$db_array=array('_id' => getNextSequence("userid"), 'name' => 'debojit');

$user_collection->insert($db_array);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...