Как удалить строки в интервале в MongoDb - PullRequest
0 голосов
/ 21 января 2012

У меня есть коллекция с большим количеством строк, например:

{ "_id" : 1, "state" : "1+" }

Я хочу настроить вкладку cron для удаления первых N строк в моей коллекции.

Я попытался:

db.history.remove(
    {
        _id : 
        { 
            $lt : db.history.find().sort({_id:1}).limit(1)._id + N
        }
        , 
        $atomic : true 
    }
);

Где N - количество строк, которые нужно удалить, и затем я добавлю эту строку в --eval в моей задаче cron, но эта команда ничего не возвращает.

Что я делаю не так?Я, вероятно, могу написать серверную функцию с N в параметре ...

1 Ответ

2 голосов
/ 21 января 2012

У меня работает следующее:

for (var v = db.ninja.find().sort({_id:1}).limit(2);v.hasNext();) 
{
    db.ninja.remove(v.next());
}

Примечание:

1) Замените ниндзя на имя вашей коллекции

2) переменная v содержит указатель курсорав отсортированные документы (отсортировано по _id).Я дал предельное значение 2, вы можете заменить его значением N

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