Получить количество записей в таблице перед заданной записью / получить абсолютный идентификатор записи - PullRequest
2 голосов
/ 15 декабря 2011

Я знаю _id (ObjectID) некоторой записи;есть ли способ получить его относительную позицию от начала таблицы / количество записей перед ней, без написания кода ?

* (материал требовался для отладки некоторых приложений, которые *d * грязная политика «без удалений» вместе с инкрементными номерами записей и коллекциями в памяти) *

UPD : все еще ищем собственный способ сделать такие вещи, но вот некоторые сладости perl:

#!/usr/bin/perl -w
use MongoDB;
use MongoDB::OID;
use strict;
my $ppl = MongoDB::Connection->new(username=>"root", password=>"toor")->webapp->users->find();

my $c = 0;
while (my $user = $ppl->next) {
    $c++;
    print "$user->{_id} $c\n" if ( $user->{'_id'} =~/4...6|4...5/);
}

1 Ответ

1 голос
/ 15 декабря 2011

Это невозможно.В ObjectID нет информации, которую можно надежно использовать, чтобы узнать, сколько старых документов находится в одной коллекции.Часть «inc» ObjectId близка, но точные значения зависят от реализации драйвера (и могут быть даже случайными) и потребуют, чтобы все записи приходили с одного компьютера на mongod, управляющий одной коллекцией.

TL; DR: нет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...